I need to determine the ratio of elements above 30 in each column of a matrix and save in a vector. My current code looks like this:
function output = ratiomatrix(a)%address all rows, by each column do previous ratio
%but divide by number of elements in column
%probably do it inside for loop and put in vector
[rows,columns] = size(a); %gets number of rows and columns (divide by rows for ratios)
greater = 0; %initialise variable for loop
output = zeros(1,columns); %preallocate variable for greater speeeeeed
for i = 1:columns for j = 1:rows if a(j) > 30 greater = greater + 1; output(i) = greater/rows; end end %output(i) = greater/rows;
%greater = 0;
endend
The problem i am currently having is that with each iteration, the value of greater includes the previous column and so gives my the wrong ratio. I have tried setting greater back to zero in a number of different places but this does not help. I would appreciate some hints as to how I might fix this, maybe without a complete answer if that's possible?
Best Answer