首页 文章

强制MATLAB仅将逗号作为列分隔符

提问于
浏览
1

前几天我在MATLAB代码的几个地方发现了以下错误

我想在MATLAB脚本中输入列向量

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

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

我把它输入了

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

现在MATLAB将第二个矩阵解释为3x2矩阵而不是列向量 . 有没有一种方法/命令/功能来强制MATLAB只使用逗号,而不是任何空白字符作为矩阵的列分隔符?

3 回答

  • 1

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

    {space}+ 替换为 +

    替换 {space}- by -

    这样做是相当安全的,除非你的向量中有复杂的表达式,否则它应该可以解决问题 .

  • 3

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

  • 0

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

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

    对我来说,这是一个合理的直观区别 a 减去 ba ,负 b .

    你也可以像Ilya建议的那样使用括号 .

相关问题