フィルターのクリア

Getting error about index in for loop

2 ビュー (過去 30 日間)
Carly Hudson
Carly Hudson 2020 年 5 月 5 日
コメント済み: per isakson 2020 年 5 月 5 日
%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 日
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

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

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by