How can I add the values of each iteration of a for loop, where the index is k=0:0.001:.30, into a matrix so that I can plot the values?

I have a 'for' loop that is calculating an eqn from k=0:0.001:0.30, the loop is generating the required results for each single iteration but when I try to take each iteration and put it into a matrix I get the following error,
Subscript indices must either be real positive integers or logicals.
I think this is because of my indexing k=0:0.001:0.30, MatLab doesn't like the zeros, but I need to run the loop in this fashion to get the results I need.
This is what I have for the 'for' loop,
% preallocate space x= zeros(300,1);
for k = 0:0.001:0.30
y=3.065-(8.871*(k/H))+(14.036*(k/H).^2)-(7.219*(k/H).^3);
x(:,k)=y % store y as kth column of x
end

 採用された回答

Youssef  Khmou
Youssef Khmou 2014 年 5 月 20 日
編集済み: Youssef Khmou 2014 年 5 月 20 日
If H is scalar you can vectorize the problem :
k=0:0.001:0.30;
H=2;
y=3.065-(8.871*(k/H))+(14.036*(k/H).^2)-(7.219*(k/H).^3);
Using the loop, the index must be an integer, to respect this condition you can proceed as :
k=0:0.001:0.30;
for t=1:length(k)
y=3.065-(8.871*(k(t)/H))+(14.036*(k(t)/H).^2)-(7.219*(k(t)/H).^3);
x(:,t)=y; % store y as kth column of x
end

1 件のコメント

Mark
Mark 2014 年 5 月 20 日
Thank you so much for clarifying this, 'H' is a scalar so I jsut used your first suggestion

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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeLoops and Conditional Statements についてさらに検索

質問済み:

2014 年 5 月 20 日

コメント済み:

2014 年 5 月 20 日

Community Treasure Hunt

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

Start Hunting!

Translated by