【发布时间】:2014-08-29 03:43:18
【问题描述】:
我正在尝试减少我前一阵子的一些大块 matlab 代码,并希望让它们更“干净”一些。
VarName2,VarName3,VarName4 ...等是由测量数据提供的,我会知道它们总是会是什么,因此我给了我名字 A,B ,C ,但我想改变的想法是第一个名称的一部分,所以每次我运行 .m 文件时,我都会使用 input('') 选项
其中 fname = 'SWAN' 和 A, B , C 是名称的第二部分,它们是常量。
fname = input ('enter name')
fname_A = VarName2
fname_B = VarName3
fname_C = VarName4
想要得到
SWAN_A = VarName2
SWAN_B = VarName3
SWAN_C = VarName4
谢谢
按照您的建议,我一直在尝试结构构造
S.name = input ('enter name of the data ".." ==')
S.A = A;
S.A(1,:)=[];
S.B = B;
S.B(1,:)=[];
S.C = C;
S.C(1,:)=[];
S.D = D;
S.D(1,:)=[];
S.E = E;
S.E(1,:)=[];
请问我是否也可以输入事物命令,以便我可以更改结构的名称?
在脚本前面加上S='west' 然后做
'S'.name = input ('enter name of the data ".." ==')
S.A = A;
【问题讨论】:
-
到底是什么问题?你不能简单地将
fname_a全部替换为SWAN_A吗? -
@George:不要这样做,改用元胞数组或结构:matlab.wikia.com/wiki/…,blogs.mathworks.com/videos/2010/03/08/…(列表中的第一名)
-
@DennisJaheruddin 我正在这样做,但我想自动化这个过程有点烦人,不得不一直打开文件并更改名称
-
@DennisJaheruddin:不,OP 正在尝试分配在运行时定义名称的变量!我还是说不要那样做,在这种情况下使用结构来代替......
-
@George 你为什么想要这个?这似乎是一个非常糟糕的主意。您稍后在代码中使用
SWAN_A等做什么?如果您在运行时命名它们,您打算以后如何使用它们?如果你以后不和他们一起工作,你为什么需要他们这样命名?我认为您应该在这里重新考虑代码的结构。