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