这两种元胞数组语法之间的区别?

问题描述 投票:0回答:1
ca = {'Airbus' 320; 'Boeing' 737};
cb = [{'Airbus'} 320; {'Boeing'} 737];

这两个元胞数组有什么区别(如果有的话)?

如果我将它们传递给

isequal
,它会返回
1
true)。

matlab octave
1个回答
0
投票

我看到您已经标记了 Octave 和 MATLAB。由于两者之间可能存在差异,因此以下是 Octave 8.4.0 的结果。如果稍后有人没有提供 MATLAB 输出,我也许可以在此处添加一个作为比较。


Octave Online
octave:1>  ca = {'Airbus' 320; 'Boeing' 737}
ca =
{
  [1,1] = Airbus
  [2,1] = Boeing
  [1,2] = 320
  [2,2] = 737
}

octave:2>  cb = {{'Airbus'} 320; {'Boeing'} 737} 
cb =
{
  [1,1] =
  {
    [1,1] = Airbus
  }

  [2,1] =
  {
    [1,1] = Boeing
  }

  [1,2] = 320
  [2,2] = 737
}

在第二种情况下,您创建的“单元格字符串”与简单字符串或字符数组不同(字符串和字符数组在 Octave 中仍然是相同的东西,与实现单独字符串对象的 MATLAB 不同。)

至于

isequal
的结果,至少在八度音阶上答案是否定的:

octave:4> isequal (ca,cb)
ans = 0

同样:


octave:7> isequal('abc',{'abc'}) 
ans = 0

octave:8> isequal({'abc'},{{'abc'}})  
ans = 0

这些物体并不相同。如果您得到的结果等于 true,请通过复制/粘贴您输入的代码/命令以及程序为您提供的输出来更新您的问题。

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