need to find local maxima and minima of each row of a 7886 * 321 matrix stored in xlsx file.
1 view (last 30 days)
filename = 'filtereddata.xlsx';
data = xlsread(filename);
[rows, columns] = size(data);
extrema = zeros(7886,321);
[Diff1max,imax1,Diff1min,imin1] = extrema(Diff1(i,:));
Error: Insufficient number of outputs from right hand side of equal sign to satisfy assignment.
Voss on 1 May 2022
extrema is a 7886-by-321 matrix of zeros, so this expression:
says to get the elements of extrema at the indices given by Diff1(i,:). Those elements will be in a single matrix, so trying to assign them to the four variables Diff1max,imax1,Diff1min,imin1 is what causes the error.
I suspect you intend to use the function extrema from the File Exchange (https://www.mathworks.com/matlabcentral/fileexchange/12275-extrema-m-extrema2-m), in which case you should avoid naming a variable the same name as that function. Use another name for the variable extrema, say my_extrema, if you need that variable (which it's not clear whether you do).
my_extrema = zeros(7886,321); % variable
[Diff1max,imax1,Diff1min,imin1] = extrema(Diff1(i,:)); % function call
% do something with the outputs from extrema function