如何定义一个结构字段代码从一个细胞包含一个字符串值吗?

41视图(30天)
亲爱的所有:
我很难去定义从一个单元阵列结构字段名包含名称字符串值:
选择= [{“名字”},{“价值”};
{“α”},0.4;
{“sigmaL”},1;
{“β”},0.98);
在一个循环中,我想创建一个结构单元阵列(select)和字段名在第一列和第二列的价值是否满足某些标准。setfield和结构命令我都试了,但是在所有情况下,“字段名”输入不喜欢我参考单元阵列(如:选择(1、3)),并要求一个适当的字符串引号。
我想问一下如何创建一个结构通过引用单元格数组?(在我的例子中创建类似的结构。α= 0.4通过引用选择?)
提前谢谢你的帮助。
干杯

接受的答案

马特无花果
马特无花果 2011年4月24日
而不是使用EVAL,使用动态....字段名
选择= [{“名字”},{“价值”};
{“α”},0.4;
{“sigmaL”},1;
{“β”},0.98);
2 = 1:大小(选择1)
美国(选择{ii, 1}) =选择{ii, 2};
结束
现在你有一个结构s .你可能会得到一个警告,因为fieldname MATLAB函数αα是一样的。注意,这里使用CELL2STRUCT是首选,奥列格显示……

更多的答案(4)

本王
本王 2011年4月24日
谢谢你们所有人的帮助!它解决了我的问题完美!
干杯

保罗席尔瓦
保罗席尔瓦 2011年4月23日
选择= [{“名字”},{“价值”};
{“α”},0.4;
{“sigmaL”},1;
{“β”},0.98);
= 2:尺寸(选择,1)
eval (sprintf (“MyStruct. % s = % d ',选择{1},{2},选择);
结束
MyStruct
struct MyStruct = ();
= 2:尺寸(选择,1)
MyStruct = setfield (MyStruct,选择{1},{2},选择);
结束
MyStruct

沃尔特·罗伯森
沃尔特·罗伯森 2011年4月23日
结构(选择{3 1},{3 2})选择
记住,选择(1,3)(不存在的)第三列的第一行数组选择。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!