两种MATLAB元胞数组定义语法的差异探究
两段MATLAB元胞数组的等价性验证
先看给出的两段元胞数组定义代码:
ca = {'Airbus' 320; 'Boeing' 737}; cb = [{'Airbus'} 320; {'Boeing'} 737];
这两个元胞数组没有任何差异,使用isequal(ca, cb)验证会返回1(逻辑真),说明二者完全等价。
原因是MATLAB的元胞数组构造规则:
- 第一种写法
{'Airbus' 320; 'Boeing' 737}是直接用元胞构造语法,将字符串和数值直接包装为元胞元素,生成2×2的元胞数组。 - 第二种写法
[{'Airbus'} 320; {'Boeing'} 737]是通过方括号进行拼接,其中{'Airbus'}是单个元胞,数值320会被MATLAB自动隐式转换为元胞元素,最终拼接出的元胞数组结构、元素类型和值都和ca完全一致。
内容的提问来源于stack exchange,提问作者P Varga
相关产品推荐
相关产品推荐

