Itterate over array in steps of 120.

4 ビュー (過去 30 日間)
MadjeKoe
MadjeKoe 2022 年 6 月 15 日
コメント済み: MadjeKoe 2022 年 6 月 15 日
Hi guys, I am trying to figure out how I can itterate over 16800 rows in steps of 120. I.e. I want to loop over the first 120 rows and then loop over the next 120 rows etc. . Currently, the script only loops the first 120 rows, but I cannot get it to itterate over al the other rows in loops of 120. Is there anybody who can help me out? Thanks a lot in advance!!!
r=readmatrix('data_jong_edit.txt');
r(isnan(r(:,1)),:)=[];
empty = nan(16800,2);
r = [r empty];
u=unique(r(:,1));
count1 = 0;
count2 = 0;
for k=1:120
if r(k,9) == 1
count1 = count1 + 1;
count2 = count2 + 1;
r(k,12) = count1;
r(k,13) = count2;
elseif r(k,9) == -1
count1 = count1;
count2 = count2 + 1;
r(k,12) = count1;
r(k,13) = count2;
elseif r(k,9) == 9999
count1 = count1;
count2 = count2;
r(k,12) = count1;
r(k,13) = count2;
end
end
  1 件のコメント
Image Analyst
Image Analyst 2022 年 6 月 15 日
Why not just do
for k=1 : size(r, 1)

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

採用された回答

Torsten
Torsten 2022 年 6 月 15 日
編集済み: Torsten 2022 年 6 月 15 日
r=readmatrix('data_jong_edit.txt');
r(isnan(r(:,1)),:)=[];
empty = nan(16800,2);
r = [r empty];
u=unique(r(:,1));
for k=1:size(r,1)
if mod(k,120) == 1
count1 = 0;
count2 = 0;
end
if r(k,9) == 1
count1 = count1 + 1;
count2 = count2 + 1;
r(k,12) = count1;
r(k,13) = count2;
elseif r(k,9) == -1
count1 = count1;
count2 = count2 + 1;
r(k,12) = count1;
r(k,13) = count2;
elseif r(k,9) == 9999
count1 = count1;
count2 = count2;
r(k,12) = count1;
r(k,13) = count2;
end
end
  1 件のコメント
MadjeKoe
MadjeKoe 2022 年 6 月 15 日
oh my god thank u so much!!!!

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

その他の回答 (0 件)

Community Treasure Hunt

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

Start Hunting!

Translated by