A1,A2,..。分配给t.和A1,A2,A3,...还具有如下for循环中指定的值。现在,当我打印print(t(1,:))时,我想要答案2,但我得到的是A1。这只是我实际问题的一个虚拟代码,A1,A2实际上有500 x 1的值。
t=['A1';'A2';'A3';'A4';'A5']; for j=1:length(t) eval([t(j,:), '= 2*j']) end
有没有人能帮我解决这个问题。
1hdlvixo1#
不要使用这样的动态名称创建变量。这将导致您编写速度较慢的模糊代码。最好使用数组、单元格数组或结构变量。有关详细讨论,请阅读"TUTORIAL: Why Variables Should Not Be Named Dynamically (eval)"上的MatLab答案。
flvlnr442#
eval(['t(',num2str(j),',:)= 2*',num2str(j)])
2条答案
按热度按时间1hdlvixo1#
不要使用这样的动态名称创建变量。这将导致您编写速度较慢的模糊代码。最好使用数组、单元格数组或结构变量。有关详细讨论,请阅读"TUTORIAL: Why Variables Should Not Be Named Dynamically (eval)"上的MatLab答案。
flvlnr442#