I think it may be a syntax issue, here is the code.
load ([ 'C:\Users\Abid\Desktop\Inquiry Runs\dtS' ])
dtS((dtS==0))=nan;
for j=2:9;
maxS=max(dtS(j,:));
minS=min(dtS(j,:));
maxval(j,:)=dtS((dtS>(maxS-.1*maxS)));
minval(j,:)=dtS((dtS<(minS+.1*minS)));
avmax(j)=mean(maxval(j,:));
avmin(j)=mean(minval(j,:));
avs(j,:)=[avmax(j) avmin(j)]
end
So I know the the row matrices are different sizes every loop. For example maxval(j,:) will change depending one row it is looking through for certain values.
I did this manually and I see that on the first loop the matrices are size (1,1), however, if I set the loop to run for only j=2, the row length is 13.
Usually if a matrix is changing size on the loop, I only get a warning, but this time I think it is due to a reason I don’t understand.
You are right that the problem is with maxval(j, 🙂 being a different size.
length(maxval(j, :))is notlength(dtS((dtS>(maxS-.1*maxS)))); this causes a problem since maxval has to be ‘rectangular’, but if it were extended by this line of code, some of its values would not be defined. Consider:If this code were legal, the result would be:
and because of those undefined values, matlab will not let you do this. You could use a cell array instead: