フィルターのクリア

'While' loop that pulls data from a matrix with n rows

1 回表示 (過去 30 日間)
c_def
c_def 2018 年 2 月 6 日
コメント済み: c_def 2018 年 2 月 6 日
I am trying to write a code to execute a 'while' loop from a matrix. The matrix it pulls the data from ideally has n lines (where n can vary depending on the .xls file uploaded and the number of rows it contains). Variables DRb and PRb are defined earlier in the code and are constants.
[min,el]=xlsread('file name.xls');
while f<=0.04
col=4;
atom=1;
ReverseMelt(row, atom)=f;atom=atom+1;
ReverseMelt(row, atom)=((min(6,col)/(DRb+f*(1-PRb))))^(-1); col=col+1;atom=atom+1;
*many more lines of calculations*
row=row+1;
f=f+0.005;
end
The data I am looking for this calculation starts at min(6,col) but I want the while loop, when it reaches f=0.04, to start again such that min(6,col) becomes min(7,col) and so on till the end of the matrix. I have tried a 'for' loop where I put before the while loop:
x=size(min)
y=x(1,1)
For z=6:y
while f<=0.04
col=4;
atom=1;
ReverseMelt(row, atom)=((min(y,col)/(DRb+f*(1-PRb))))^(-1);
end
end
I thought this would make my while loop run from row 6 in matrix min to y (the number of total rows), but didn't go. Any ideas?

採用された回答

Roy Kadesh
Roy Kadesh 2018 年 2 月 6 日
Your loop variable is z, while you use y inside your loop, so it repeats the same code y times (assuming you have hidden the code that re-initialized f for the second for-loop)
  3 件のコメント
Roy Kadesh
Roy Kadesh 2018 年 2 月 6 日
You need to reset f, otherwise the while loop will exit immediately after the z=6 is done. You can see this if you use the debugger to step through your code.
c_def
c_def 2018 年 2 月 6 日
Excellent, this solved it. Thanks!

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

その他の回答 (0 件)

カテゴリ

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