Matlab 和 Octave 中的 strjoin 兼容性

问题描述 投票:0回答:1

对于函数 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

string matlab join octave compatibility
1个回答
0
投票
MATLAB 中的

strjoin
还采用字符向量元胞数组,您可以在链接的文档中阅读。

在 MATLAB 中,传统上,“字符串”是字符向量(元素为字符的数组)。这些是用

'
创建的。要将多个变量放在同一个变量中,您需要将它们放入元胞数组中。 Octave 发现 MATLAB 语法中未使用
"
,因此认为它与
'
含义相同。因此,您可以在 Octave 中创建字符向量为
'foo'
"foo"

后来,MATLAB 引入了

string
对象。这是用
"
创建的,可以放入常规数组(即字符串数组)中。 Octave 无法在不破坏大量现有 Octave 代码的情况下复制这一点,因此 Octave 中没有
string

如果您想编写同时适用于 Octave 和 MATLAB 的代码,请始终对字符串使用单引号

'
strjoin({'foo' 'bar'})
两者都适用。

© www.soinside.com 2019 - 2024. All rights reserved.