フィルターのクリア

redefine array in for loop

3 ビュー (過去 30 日間)
Sara
Sara 2012 年 7 月 5 日
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 件のコメント
Walter Roberson
Walter Roberson 2012 年 7 月 6 日
What error did you encounter with the code you tried?

サインインしてコメントする。

回答 (1 件)

John Petersen
John Petersen 2012 年 7 月 5 日
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 件のコメント
Sara
Sara 2012 年 7 月 11 日
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. 2012 年 7 月 11 日
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

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeCreating and Concatenating Matrices についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by