программирование персонажа в Matlab - PullRequest
0 голосов
/ 04 ноября 2011

У меня есть данные с характером time1, time2, time3 до time60.Это означает, что каждый раз имеет свой собственный результат, например time1=70, time2=56 и т. Д. .... как упорядочить эти данные в матрице без необходимости вручную упорядочивать их как:

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

У меня естьне знаю, кроме шага выше.Вышеуказанный шаг занимает больше времени, чтобы набрать до 60 данных.Есть ли какой-нибудь самый простой способ упорядочить эти данные?

Ответы [ 2 ]

0 голосов
/ 05 ноября 2011

Вы можете сделать это просто без цикла, как

eval(['time=[' sprintf('time%d ',1:60) '];'])

Однако в будущем старайтесь не называть свои переменные как time1, time2 и т. Д. Вместо этого рассмотрите возможность сохранения значений в векторе как time(1)=..., time(2)=.... Это делает ваш код чище, меньше переменных, загромождающих ваше рабочее пространство, может использовать векторизованные операции, в которых MATLAB действительно хорош (это зависит от того, что вы с ним делаете, хотя ...) и если вам нужно сохранить значения в MAT файл, вам нужно сохранить только одну переменную вместо 60.

Я бы также рекомендовал не использовать eval в максимально возможной степени, и только в тех случаях, когда этого нельзя избежать (например, работать с чужим кодом / данными).

0 голосов
/ 04 ноября 2011

Вы можете использовать команду eval внутри цикла for.

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