有一天,我在MATLAB代码的几个地方发现了以下错误
我想在MATLAB脚本中输入列向量
[a-b,
c-d
e-f]
其中a,b,c,d,e,f是某些变量中的长表达式。
我输入了
[ a -b ;
c -d ;
e -f]
现在,MATLAB将第二个矩阵解释为3x2矩阵而不是列向量。 有没有一种方法/命令/功能来强制MATLAB只使用逗号,而不是任何空白字符作为矩阵的列分隔符?
答案 0 :(得分:3)
我认为没有办法强制matlab不以这种方式处理空格,因为它是解释性语言,这样做可能会影响一些内置函数/第三方代码。 但是,您可以使用括号对数据进行分组 - 即(a -b)仍然是矩阵的单个元素。
答案 1 :(得分:1)
那么你的第二个矩阵确实看起来像是3x2。但是,如果你这样做,它将再次成为列向量:
[a - b;
c - d;
e - f]
对我来说,a
减去b
和a
,负b
之间存在合理的直观区别。
你也可以像Ilya建议的那样使用括号。
答案 2 :(得分:0)
假设你有一段代码,你只想要有列向量而没有矩阵,那么有一个相当快的解决方案:
将{space}+
替换为+
将{space}-
替换为-
这样做是相当安全的,除非你的向量中有复杂的表达式,否则它应该可以解决问题。