MATLAB Answers

Getting error about index in for loop

1 view (last 30 days)
Carly Hudson
Carly Hudson on 5 May 2020
Commented: per isakson on 5 May 2020
%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!

  0 Comments

Sign in to comment.

Answers (1)

per isakson
per isakson on 5 May 2020
Edited: per isakson on 5 May 2020
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 Comments

Carly Hudson
Carly Hudson on 5 May 2020
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 on 5 May 2020
This should do it
wid = size(dataN,2);
avg = nan( 1, wid );
for k = 1 : wid
val = dataN(:,k);
avg(k) = mean(val);
end

Sign in to comment.