Getting error about index in for loop

%for loop for plotting given data
for k = 0:size(dataN)
val = dataN(:,k);
avg = mean(val);
end
I am getting this error:
Index in position 2 is invalid. Array indices must be positive integers or logical values.
Error in Lab5_Problem2 (line 25)
val = dataN(:,k);
I cannot figure out why, but I am trying to extract the first row of the array (dataN). Thank you for any help!

回答 (1 件)

per isakson
per isakson 2020 年 5 月 5 日
編集済み: per isakson 2020 年 5 月 5 日

0 投票

Three problems:
  • replace 0:size(dataN) by 1:size(dataN,2). Matlab's indexing is one-based.
  • avg = mean(val); overwrites avg in every iteration; only the last value will persist
  • "trying to extract the first row of the array (dataN)" dataN(:,k) refers to the k:th column

2 件のコメント

Carly Hudson
Carly Hudson 2020 年 5 月 5 日
How do I make it so avg is not overwritten every iteration? I think I am trying to refer to the kth coulmn because I am trying to extract the average from every column of data. Sorry if any of this is wrong, but I am very new to MatLab. Thank you for your help!
per isakson
per isakson 2020 年 5 月 5 日
This should do it
wid = size(dataN,2);
avg = nan( 1, wid );
for k = 1 : wid
val = dataN(:,k);
avg(k) = mean(val);
end

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

カテゴリ

ヘルプ センター および File ExchangeMatrix Indexing についてさらに検索

製品

質問済み:

2020 年 5 月 5 日

コメント済み:

2020 年 5 月 5 日

Community Treasure Hunt

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

Start Hunting!

Translated by