【发布时间】:2016-01-17 13:30:25
【问题描述】:
for i=1:1:4
T=[(cos(x(i)))^2 (sin(x(i)))^2 2*(cos(x(i)))*(sin(x(i)));(sin(x(i)))^2 (cos(x(i)))^2 -2*(cos(x(i)))*(sin(x(i))) ;-(cos(x(i)))*(sin(x(i))) (cos(x(i)))*(sin(x(i))) (cos(x(i)))^2-(sin(x(i)))^2 ;];
XXXXX=inv(T)*Qq*R*T*inv(R);
end
我想根据i命名XXXXX;我的意思是当i=1 运行时,XXXXX 将是变量Q1,而i=2 将是Q2,等等。
【问题讨论】:
-
我认为你必须使用
eval()来完成类似的事情。 -
您是否有特定的理由这样做而不是将其放入数组
Q{i}? -
你不想要这些名字。这称为使用“动态变量命名”并被视为very bad practise。有关原因的更多信息,请参阅链接的帖子,并查看 Daniel 的答案以了解存储变量的正确方法。
-
@AnonSubmitter85 虽然您实际上可以这样做来执行确切要求的操作,但至少出于两个原因给出这样的答案是一个非常糟糕的主意:首先,原始海报的想法可能是不是最好的,我们必须解释正确的方法;其次,因为使用
eval()不是一个好主意(除非我们完全知道为什么要使用它,而这里可能不是这种情况)。
标签: matlab variable-names