1
我有一个cellarray
它的值用来初始化相应的结构。在Matlab中动态赋值
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
我不能即使使用eval
执行desired statement
。应感谢您的帮助。 filldata
输出计数将匹配desired statement
的LHS的输出计数。谢谢。
你熟悉[动态结构引用] (http://blogs.mathworks.com/loren/2005/12/13/use-dynamic-field-references/)?通常他们的明智用途决定了对“eval”的需求 - 而且它们非常快。 –
@Reve_etrange谢谢! – Maddy