【发布时间】:2011-08-29 23:36:32
【问题描述】:
我有一个cellarray,其值用于初始化相应的结构。
cellarr = {'NI' ; 'EQ' ; 'TA' } ;
defstr = struct('Raw', '-1') ;
for i = 1:size(cellarr,1)
eval([cellarr{i,1} '= defstr;']) %Yes,I know eval is bad!Any other approach?
end
然后将新值填充到Raw 字段中。
dataCell = [] ;
for i=1:size(cellarr,1)
rawCell = [cellarr{i} '.Raw'] ;
dataCell = strcat(dataCell, ', ', rawCell) ;
end
dataCell(1) = [] ;
DESIRED STATEMENT NOW --> [NI.Raw,Eq.Raw,TA.Raw] = filldata()
function[a1,a2,a3] = filldata(), a1 = 1 ; a2 = 2 ; a3 = 3 ; end
我无法执行desired statement,即使使用eval。将感谢您的帮助。 filldata 输出计数将与 LHS 的 desired statement 匹配。谢谢。
【问题讨论】:
-
你熟悉dynamic structure references吗?通常,它们的明智使用可以解决对
eval的需求——而且它们的速度非常快。
标签: matlab dynamic eval cell variable-assignment