在MATLAB中编写矩阵的常规方法是单行代码,例如:
A = [3,2,1;2,1,3;1,3,2];
将命令分成几行需要3个点,例如:
x = tan(...
y); % ie: x = tan(y);
现在,将这两个规则结合起来以书面形式 (以清楚地看到其结构)可以得出:
B = [3, 2, 1;...
2, 1, 3;...
1, 3, 2];
MATLAB(在脚本和函数中)也接受这种形式:
C = [3, 2, 1;
2, 1, 3;
1, 3, 2];
在MATLAB读取它们的方式上,两种写矩阵的方式(上面的B
和C
)是否完全相同?如果存在差异,应该优先选择另一个,为什么?
编辑:有多种方法可以在MATLAB中以一行或多行形式编写矩阵,所有这些都可以产生相同的输出。但是,有没有一种方法可以使MATLAB理解得最好(即以最少的精力正确理解输入)?还是程序方面的努力总是一样的?
我问的原因:我只是发现自己在一个脚本中同时使用了这两种方法,一次是简单地打破一长串数字,一次是为了更好地查看数据。
答案 0 :(得分:1)
写作:
A = [3, 2, 1; 2, 1, 3; 1, 3, 2];
或者:
B = [3, 2, 1;...
2, 1, 3;...
1, 3, 2];
或者:
C = [3, 2, 1;
2, 1, 3;
1, 3, 2];
或更短的方式:
D = [3, 2, 1
2, 1, 3
1, 3, 2];
都是完全相同的。 ;
或换行符都用于分隔矩阵行。
简单测试:
>> isequal(A,B)
ans =
logical
1
>> isequal(A,C)
ans =
logical
1
>> isequal(A,D)
ans =
logical
1
那么,哪个最好?
使用...
和换行符(和;
)完全没有必要,它使用的是换行符,而不是无意地用...
覆盖换行符。实际上就像写作:
B = [3, 2, 1; 2, 1, 3; 1, 3, 2];
也不需要使用;
和换行符,但是如果将来希望将它们设为一行,可能会增加;
。它也可能看起来更清晰(基于观点?)
不使用换行符是很常见的,虽然看起来不太好,但是它更紧凑。
总结:不必要使用...
和换行符(以及;
),并且可能会造成混淆。其他选项主要基于意见。