2011-05-06 15 views
1

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

回答

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 
0

的数字和字符类型数据,yoda has the correct suggestion:使用cell arrays

但是,根据您描述的示例,您可能有其他选择。如果矩阵中的字符条目用于标识“缺失数据”,则使用包含唯一值的纯数字矩阵(如NaNInf)来识别数据点是空的或数据不可用。

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