load( lapFileSource, 'UntitledMeta_Data' );%My MetaData
universal={'TestType';'TestApparatus';'TestSystem Location';
'Configuration';'Wire condition';'Wire Type';'Circuit';};
u=11;
for o=drange(1:u)
if strcmp('',MetaData{o})
universal{o}='Null';
else
universal{o}=MetaData{o};
end
assignin('base','universal{o}',MetaData{o})
end
我在工作场所分配变量时遇到错误。
答案 0 :(得分:0)
您需要阅读所使用功能的文档。来自assignin
的文档:
echo ("<a class='button href=\"class.php?id=".$row["ClassID"]."\">".$row["className"."</a>");
而且,更明确地说:
% The var input must be the array name only; it cannot contain array indices.
您可以将% assignin does not assign to specific elements of an array.
% The following statement generates an error:
X = 1:8;
assignin('base', 'X(3:5)', -1);
调用转移到assignin
循环之外,并将完整数组传递到基本工作区,也可以按照文档的建议使用evalin
。
例如:
for
结果数组function trialcode
n = 5;
myarray = cell(1, 5);
for ii = 1:n;
if mod(ii,2)
myarray{ii} = 'odd';
else
myarray{ii} = 'even';
end
mycmd = sprintf('evalinarray{%u} = ''%s'';', ii, myarray{ii});
evalin('base', mycmd);
end
assignin('base','assigninarray', myarray)
end
和evalinarray
是等效的。在这两者中,我建议使用assigninarray
,因为它比assignin
方法更加健壮和明确。