带椭圆或不带字面书写的矩阵的结束线有什么区别?

时间:2019-06-13 11:36:28

标签: matlab matrix line-breaks

基础

在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读取它们的方式上,两种写矩阵的方式(上面的BC)是否完全相同?如果存在差异,应该优先选择另一个,为什么?

编辑:有多种方法可以在MATLAB中以一行或多行形式编写矩阵,所有这些都可以产生相同的输出。但是,有没有一种方法可以使MATLAB理解得最好(即以最少的精力正确理解输入)?还是程序方面的努力总是一样的?


我问的原因:我只是发现自己在一个脚本中同时使用了这两种方法,一次是简单地打破一长串数字,一次是为了更好地查看数据。

1 个答案:

答案 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];

也不需要使用;和换行符,但是如果将来希望将它们设为一行,可能会增加;。它也可能看起来更清晰(基于观点?)

不使用换行符是很常见的,虽然看起来不太好,但是它更紧凑。

总结:不必要使用...和换行符(以及;),并且可能会造成混淆。其他选项主要基于意见。