2010-11-15 47 views
3

我试图打印比较列来比较具有相同索引的两个或三个不同向量的元素。 我将说明我的问题与下面的例子现在MATLAB:打印不同载体元素的比较列

>> a = [5.47758 7.46578 3.45323] 
a = 

5.4776 7.4658 3.4532 

>> b = [5.65432 4.45678 2.34789] 

b = 

5.6543 4.4568 2.3479 

如果我写

>> sprintf('%.2f %.2f\n',a, b) 

我从Matlab的

ans = 
5.48 7.47 
3.45 5.65 
4.46 2.35` 

以下响应,但我想什么办法看到这个值的介绍是这样的

ans = 
5.48 5.65 
7.47 4.46 
3.45 2.35 

如何使用函数sprintf(或其他函数或方法)来获取上述表示形式? 谢谢。

+1

看到有关如何的sprintf/fprintf中/ NUM2STR处理这些输入此相关的问题:http://stackoverflow.com/questions/2366680/how-can-i-create-a-cell-of-strings-out-of -a-meshgrid-in-matlab – Amro 2010-11-16 20:27:18

回答

3

您可以修复通过concatenatingab这个问题成一个2×3矩阵的输入参数:

>> sprintf('%.2f %.2f\n',[a; b]) 

ans = 

5.48 5.65 
7.47 4.46 
3.45 2.35 

SPRINTF功能的工作原理是一遍又一遍地重复使用格式化字符串,因为它穿过(在列订单)输入参数中每个输入参数的元素按输入顺序。这就是为什么在你的例子中,a的所有值得到打印,然后所有的值b,而不是交织ab的值。

0

如果你只是“印刷”在屏幕上,你可以输入在MATLAB控制台(或“命令窗口”):


a = [5.47758 7.46578 3.45323]; 
b = [5.65432 4.45678 2.34789]; 

c = [a',b']; % Transposing each row vector into a column vector before forming a matrix 

c = 

    5.4776 5.6543 
    7.4658 4.4568 
    3.4532 2.3479 

这会使它,当你排序更容易例如,使用“sortrows”命令(请参阅'sortrows'上的文档以了解其用法:“help sortrows”或“doc sortrows”)。

+2

欢迎来到SO,YT。我注意到你一直在使用新账户发帖。在一个地方使用只有一个帐号,可以获得所有答案,这可能会更好。主持人可以帮助你,如果你喜欢。另外,加入“Y.T.”或者您的博客链接到您帖子的末尾并不是必要的或者通常可以接受的。您的名字已经在您的帖子的右下角,并且您的博客链接已经在您的个人资料中。我也建议所有新用户给予[FAQ](http://stackoverflow.com/faq)一个很好的阅读。 ;) – gnovice 2010-11-23 15:40:54