1

The other day I discovered the following bug in a couple of places in my MATLAB code

I wanted to enter the column vector in my MATLAB script

[a-b,
 c-d
 e-f]

where a,b,c,d,e,f are long expressions in some variables.

and I entered it in as

 [ a -b ;
   c -d ;
   e -f]

Now MATLAB interprets the second matrix as a 3x2 matrix instead of a column vector. Is there a way/command/function to force MATLAB to use only the comma and NOT any white space characters as a column separator for matrices ?

4

3 回答 3

3

我认为没有任何方法可以强制 matlab 不以这种方式处理空白,因为它是解释性语言,这样做可能会影响一些内置函数/第三方代码。但是,您可以使用括号对数据进行分组 - 即 (a -b) 仍将是矩阵的单个元素。

于 2013-05-03T02:21:18.797 回答
1

那么你的第二个矩阵看起来确实是一个 3x2。但是,如果您这样做,它将再次成为列向量:

[a - b;
 c - d;
 e - f]

a对我来说,这是减号ba负号之间合理的直观区别b

您也可以按照 Ilya 的建议使用括号。

于 2013-05-03T06:42:10.430 回答
0

假设您有一段代码只希望有列向量而没有矩阵,那么有一个相当快速的解决方案:

替换{space}++

替换{space}--

这样做非常安全,除非您的向量中有复杂的表达式,否则它应该可以解决问题。

于 2013-05-03T08:31:18.507 回答