Effacer les filtres
Effacer les filtres

redefine array in for loop

3 vues (au cours des 30 derniers jours)
Sara
Sara le 5 Juil 2012
Hi Guys,
for n = 3:length(x)
y1 = x(2:n) ;
t1 = ((n-2):-1:0)*dt ;
% y2 = x(1:n-1) ;
y2 = y1 - 1 ;
t2 = t1 +dt;
int(n) = sum (t1.^(k-1)/factorial(k-1).*y1 + t2.^(k-1)/factorial(k-1).*y2)*dt/2 ;
end
I want to define y2= y1 -1 instead y2= x (1:n-1) which I have commented above. By y2 = y1 - 1, occurred some errors in MATLAB. Why? It is not correct?
  1 commentaire
Walter Roberson
Walter Roberson le 6 Juil 2012
What error did you encounter with the code you tried?

Connectez-vous pour commenter.

Réponses (1)

John Petersen
John Petersen le 5 Juil 2012
y1-1 means the vector y1 with the quantity 1 subtracted from it. The commented code shifts the elements by one element. Which do you want to do?
  5 commentaires
Sara
Sara le 11 Juil 2012
int = zeros(1,length(x));
if k <= 0
int = x ;
return
end
for n = 3:length(x)
y1 = x(2:n) ;
t1 = ((n-2):-1:0)*dt ;
y2 = x(1:n-1) ;
% y2 = -1 +y1 ;
t2 = t1 +dt;
int(n) = sum (t1.^(k-1)/factorial(k-1).*y1 + t2.^(k-1)/factorial(k-1).*y2)*dt/2 ;
end
I mean, is there anyway to define y2 from y1? And not from variable x? Could I omit the variable y2 from the code ?
F.
F. le 11 Juil 2012
If you don't use y1 and y2 after...
if k <= 0
int = x ;
return
else
int = zeros(1,numel(x));
end
for n = 3:numel(x)
t1 = ((n-2):-1:0)*dt ;
t2 = t1 +dt;
int(n) = sum ( ...
t1.^(k-1)/factorial(k-1) .* x( 2 : n ) + ...
t2.^(k-1)/factorial(k-1) .* x( 1 : n-1 ) ...
)*dt/2 ;
end

Connectez-vous pour commenter.

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by