Subscripted assignment dimension mismatch.

% 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

Jan
Jan 2013년 6월 18일
Do you see that omitting the code formatting decreases the readability of your code?

댓글을 달려면 로그인하십시오.

답변 (1개)

random09983492
random09983492 2013년 6월 18일

0 개 추천

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

카테고리

태그

질문:

2013년 6월 18일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by