对于函数 strjoin,如果相同的代码可以在 Matlab 和 Octave 上运行就更好了。 strjoin 的参数几乎相同。不同之处在于,在 Matlab 中它需要一个向量 [],而在 Octave 中它需要一个单元格 {}。有没有比检查“OCTAVE_VERSION”来切换更好的方法?
strjoin(["mat" "lab"]);
https://www.mathworks.com/help/matlab/ref/strjoin.html
strjoin({"oc" "tave"});
https://octave.sourceforge.io/octave/function/strjoin.html
OCTAVE_VERSION
https://docs.octave.org/v4.0.3/How-to-distinguish- Between-Octave-and-Matlab_003f.html
strjoin
还采用字符向量元胞数组,您可以在链接的文档中阅读。
在 MATLAB 中,传统上,“字符串”是字符向量(元素为字符的数组)。这些是用
'
创建的。要将多个变量放在同一个变量中,您需要将它们放入元胞数组中。 Octave 发现 MATLAB 语法中未使用 "
,因此认为它与 '
含义相同。因此,您可以在 Octave 中创建字符向量为 'foo'
或 "foo"
。
后来,MATLAB 引入了
string
对象。这是用 "
创建的,可以放入常规数组(即字符串数组)中。 Octave 无法在不破坏大量现有 Octave 代码的情况下复制这一点,因此 Octave 中没有 string
。
如果您想编写同时适用于 Octave 和 MATLAB 的代码,请始终对字符串使用单引号
'
。 strjoin({'foo' 'bar'})
两者都适用。