我希望能够存储一系列不同大小的字符串,例如
userinput=['AJ48 NOT'; 'AH43 MANA'; 'AS33 NEWEF'];
这当然会返回错误,因为每行的列数不同。我知道所需要的只是第一行和第二行中足够的空间。但是我需要能够将它放入数组而不强迫用户自己添加这些空格。是否有允许我这样做的命令?如果可能的话,我也想知道为什么数字不会出现这个问题,例如:
a=[1; 243; 23524];
答案 0 :(得分:8)
使用标准Matlab数组无法做到这一点。字符串实际上只是Matlab中的字符向量。而且你不能有一个不同长度的行矩阵。
但是,您可以使用cell array:
userinput={'AJ48 NOT'; 'AH43 MANA'; 'AS33 NEWEF'};
disp(userinput{1});
请注意,在许多情况下,单元数组不像普通数组那样工作。
答案 1 :(得分:1)
回答你问题的最后部分;只是因为字符串可以是可变长度但数字(在Matlab中)是固定长度。这是数组的主要思想之一,让它们只包含固定大小的实体(例如,因为需要高效查找),请参阅主题here。