在MATLAB数组中存储不同大小的字符串?

时间:2011-06-27 20:07:50

标签: arrays string matlab store

我希望能够存储一系列不同大小的字符串,例如

userinput=['AJ48 NOT'; 'AH43 MANA'; 'AS33 NEWEF'];

这当然会返回错误,因为每行的列数不同。我知道所需要的只是第一行和第二行中足够的空间。但是我需要能够将它放入数组而不强迫用户自己添加这些空格。是否有允许我这样做的命令?如果可能的话,我也想知道为什么数字不会出现这个问题,例如:

a=[1; 243; 23524];

2 个答案:

答案 0 :(得分:8)

使用标准Matlab数组无法做到这一点。字符串实际上只是Matlab中的字符向量。而且你不能有一个不同长度的行矩阵。

但是,您可以使用cell array

userinput={'AJ48 NOT'; 'AH43 MANA'; 'AS33 NEWEF'};

disp(userinput{1});

请注意,在许多情况下,单元数组不像普通数组那样工作。

答案 1 :(得分:1)

回答你问题的最后部分;只是因为字符串可以是可变长度但数字(在Matlab中)是固定长度。这是数组的主要思想之一,让它们只包含固定大小的实体(例如,因为需要高效查找),请参阅主题here