MeS*_*S83 4 matlab parameter-passing
在Matlab中我有几个存储在矩阵中的数据库记录DataMatrix
.矩阵的每一行都是一条记录,每列都是记录属性的值.为了使程序易于理解,DataMatrix
我定义了一个变量名称,用于解释与列关联的属性,即:
ColApple = 1;
ColOrange = 2;
ColLemon = 3;
...
Run Code Online (Sandbox Code Playgroud)
我有关于50
列的名称.
我的问题是,in in DataMatrix
用于不同的函数,我想总是使用列名来处理数据DataMatrix
.所以,我有不同的功能,两个数值之间的共享ColApple
,ColOrange
,ColLemon
,...
到目前为止,我想到了两种可能的方法:
定义一个函数,返回列名的值,即:
[ColApple, ColOrange, ColLemon, ... ] = getColNames
我会避免使用全局解决方案,因为我认为它很危险,也因为我希望列名称在可能的情况下保持不变.第二种方法更好,但由于我有50
列,我不知道是否有一个函数返回50
不同的值是一个好主意(在我看来也很难维护).
任何人都有更强大或可维护的方法来解决这个问题?我相信我不是第一个处理这个问题的人,但我无法找到解决方案.
这非常适合容器地图.容器映射允许创建字典.例如
fruits = containers.Map({'Apple', 'Orange', 'Lemon'}, [1, 2, 3])
Run Code Online (Sandbox Code Playgroud)
将创建字典
'Apple' -> 1
'Orange' -> 2
'Lemon' -> 3
Run Code Online (Sandbox Code Playgroud)
你可以找到所需的列号
>> fruits('Orange')
ans =
2
Run Code Online (Sandbox Code Playgroud)