matlab中的编程特性

matlab中的编程特性,matlab,matrix,character,Matlab,Matrix,Character,我有字符为time1、time2、time3的数据,直到time60。这意味着每次都有自己的结果,例如time1=70,time2=56等等。。。。如何在矩阵中排列此数据,而无需手动将其排列为: time=[time1 time2 time3 time4 time5.......time60]. 除了上面的步骤,我不知道。以上步骤需要更多的时间才能键入60个数据。有没有最简单的方法来排列这些数据?您可以在for循环中使用eval命令 time = []; for n = 1:60 ev

我有字符为time1、time2、time3的数据,直到time60。这意味着每次都有自己的结果,例如
time1=70
time2=56
等等。。。。如何在矩阵中排列此数据,而无需手动将其排列为:

time=[time1 time2 time3 time4 time5.......time60].

除了上面的步骤,我不知道。以上步骤需要更多的时间才能键入60个数据。有没有最简单的方法来排列这些数据?

您可以在for循环中使用
eval
命令

time = [];
for n = 1:60
    eval(['time = [time, time', num2str(n), '];']);
end

你可以直接做这件事,而不必像以前那样循环

eval(['time=[' sprintf('time%d ',1:60) '];'])
<>但是,以后尽量不要把你的变量命名为<代码> TIME1,<代码> TIME2,等等,而应该考虑将向量值存储在<代码>时间(1)=…< /代码>,<代码>时间(2)=…< /代码>。这使您的代码更干净,工作空间中的变量更少,可以利用MATLAB非常擅长的矢量化操作(这取决于您如何使用它…),如果您需要将值保存到
MAT
文件中,您只需要保存一个变量,而不是60个


我还建议不要尽可能多地使用
eval
,并且只能在无法避免的情况下使用(例如,使用其他人的代码/数据)。

或者至少将它们放在一个结构中,该结构实际上是一个关联数组,允许您按名称查找元素。实际上,您可以使用
save('matfilename');清楚的S=加载('matfilename')
将变量从工作区移动到结构中。@BenVoigt这并不能真正解决问题。首先,保存所有变量,而不仅仅是所需的变量。其次,您仍然有类似于
S.time1
S.time2
,这与OP已有的功能没有多大帮助。。。或