2015-05-05 14 views
1

У меня есть цикл для вычисления периода времени T. Это работает, когда у меня есть один вектор для I, но теперь у меня есть еще два вектора.Простая петля для петли в Matlab

Моя идея заключается в том, чтобы поставить все я ', I1, I2 и I3 в матрице I, а затем создать for петлю вокруг первоначального for петли под здесь. Но я не могу заставить его работать. Возможно ли, или я должен пойти на другой подход?

Пожалуйста, дайте мне знать, если я что-нибудь разъясню.

for n = 1:length(I) - 1; 
    if I(n)*I(n+1) >= 0 
     n = n+1; 
    else 
     g = (I(n+1)-I(n))/(tt(n+1)-tt(n)); 
     T = 2*(tt(n)-(I(n)/g)); 
     disp(' Period [Seconds]:') 
     disp(T); 
     break 
    end; 
end; 
+1

Я не понимаю ваш вопрос, вы можете обеспечить ввод образца и желаемый результат? –

+0

Код, который вы отправили, вычисляет первый раз, когда я поворачиваю на ноль (предположительно, это переменный ток или что-то в этом роде). Если у вас три тока I1, I2, I3, они могут поворачиваться на ноль в разное время. Чтобы сделать что-то разумное с ними в Matlab, сначала нужно прояснить ситуацию: ожидается ли период такой же? А как насчет фаз? Чего вы хотите достичь? «теперь у меня есть еще два вектора», это не явная проблема. –

+0

Итак, I1, 12 и I3, скажем, вектор 1x3000. Теперь я хочу добавить их в матрицу I, которая является 3x3000. И создайте цикл вокруг исходного скрипта, чтобы вычислить все I и сохранить T1, T2 и T3 в векторе. I1, I2 и I3 - все разные токи, или, точнее, векторы со значениями указанного тока. Надеемся, что это очистит его :) – stx1020

ответ

0
TS = []; 
Tsvang = []; 

for k = 1:3 

for n = 1:length(I(k,:)) - 1; 
if I(k,n)*I(k,n+1) >= 0 
n = n+1; 
else 
g = (I(k,n+1)-I(k,n))/(tt(n+1)-tt(n)); 
Tsvang(k) = 2*(tt(n)-(I(k,n)/g)); 
break 
end; 
TS = [TS Tsvang]; 
end; 
end; 
disp(' Period [Seconds]:') 
disp(Tsvang) 
Смежные вопросы