同一矩阵中的数字和字母符号

时间:2011-05-06 05:09:27

标签: matlab matrix

我正在研究一个模型,使用matlab作为其他模型的图形表示。因此,我希望有一个可以用字母和数字更新的矩阵。数字代表速度,而例如' - '代表空白部分。在matlab文档和互联网上,我发现了许多有趣的提示,但不是我需要的。 提前谢谢!

2 个答案:

答案 0 :(得分:3)

您不能在矩阵中表示numeric类型(整数/浮点)和char类型数据的数据。但是,您可以使用与矩阵类似的cells,并且可以在每个单元格中保存不同的数据类型。这是一个例子。

A={[1 2 3],'hello';'world',[4,5,6]'}

A = 

    [1x3 double]    'hello'     
    'world'         [3x1 double]

这里第一个单元格包含行向量,第二个和第三个单元格包含字符串,第四个单元格包含列向量。索引到单元格的索引类似于数组,只有一个小的区别:使用{}对索引进行分组。例如,要访问第二行第一列中的元素,请执行

A{2,1}

ans =

world

您还可以访问单元格内的数组元素,如

A{2,2}(2)

ans = 

    5

答案 1 :(得分:0)

如果您想要存储数字和字符类型数据的混合,yoda has the correct suggestion:使用cell arrays

但是,根据您描述的示例,您可能还有其他选择。如果矩阵中的字符条目是为了识别“缺失数据”,那么使用包含NaNInf等唯一值的纯数字矩阵来识别数据点会更有意义。是空的或数据不可用的地方。

当对矩阵执行操作时,您必须仅索引有限的元素(例如,使用ISFINITE)并对它们执行计算。甚至some functions in the Statistics Toolbox将执行忽略NaN值的操作。这可能是一种更简洁的方法,因为您可以将矩阵保持为数字类型('single' or 'double' precision)而不必混淆单元格数组。