Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Subscripted assignment dimension mismatch.

Asked by Jonathan Wilson on 18 Jun 2013

% name: MaxEff.m function [MaxEff] = KTKQMaxEffoutput(OptEff)

MaxEff = zeros(size(OptEff, 2), size(OptEff, 3)); for im = 1:size(OptEff, 2) for iim = 1:size(OptEff, 3) MaxEff(im, iim) = findpeaks(OptEff(:, im,iim)); end end %MaxEffAVE = zeros(MaxEff, 1); %for ia = 1:size(MaxEff, 2) % MaxEffAVE(ia) = findpeaks(MaxEff(:, ia)); %end

end

that is my code and the OptEff is 17x10x11 and i want to get the peaks out!

Please help me.

1 Comment

Jan Simon on 18 Jun 2013

Do you see that omitting the code formatting decreases the readability of your code?

Jonathan Wilson

Tags

Products

No products are associated with this question.

1 Answer

Answer by Elliot Olsen on 18 Jun 2013

Hi Jonathan,

Your problem is that the findpeaks function can return an empty array, [ ], or an array with multiple entries [peak1, peak2, ..., peakN], neither of which can be assigned to a single array element.

My suggestion would be to make your MaxEff variable a cell rather than an array. Declare MaxEff like this:

MaxEff = cell(size(OptEff, 2), size(OptEff, 3));

and access it like this:

MaxEff{im, iim} = findpeaks(OptEff(:, im,iim)); 

Hope that helps,

Elliot

1 Comment

Jonathan Wilson on 19 Jun 2013

That is a great answer :) sorted!

Elliot Olsen

Contact us