2013-05-03 43 views
1

有一天,我发现了几个地方下面的错误在我的MATLAB代码力MATLAB做只是逗号作为列分隔符

我想在我的MATLAB程序进入列向量

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

其中a,b,c,d,e,f是一些变量中的长表达式。

和我进入它在作为

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

现在MATLAB解释第二矩阵作为一个3×2的矩阵,而不是一个列向量。 有什么办法/命令/函数强制MATLAB只使用逗号而不是任何空白字符作为列分隔符矩阵?

+0

这实际上并不是一个错误 - 它是预期的行为。我同意你的看法,但这并不好。 – 2013-05-03 23:17:10

回答

0

假设你有一段代码在其中只希望有列向量和无基质,有一个相当快速的解决方案:

取代{space}+通过+

通过-

替换 {space}-

这样做很安全,除非你在向量中有复杂的表达式,否则应该这样做。

3

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

1

那么你的第二个矩阵看起来像它打算作为一个3x2的。不过,如果你不喜欢这样它会再次列向量:

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

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

您也可以使用括号作为伊利亚建议。