Error: subscripted assignment dimension mismatch during convolution.

1 Ansicht (letzte 30 Tage)
I am writing a code for convolution of rows of a 256x256 matrix with a column vector consisting entirely of ones. But I am getting the error "subscripted assignment dimension mismatch" every time i run the code. Any suggestions ?
for k=1:255
for l=1:k
m(:,l) =conv((hkl(l,:))',ones(l,1));
end
end
'hkl' is the 256x256 matrix. I want convolve each row of hkl with a column vector of 1s whose length is equal to 'l' and store it in 'm'.

Akzeptierte Antwort

Image Analyst
Image Analyst am 27 Apr. 2014
Not sure where you came up with that strange process. To convolve a 2D array with a column vector of l elements (which is an absolutely horrible variable name by the way), simply do this:
m = conv2(double(hkl), ones(l, 1), 'same');
In ones(), the first element is lower case L and the second argument is "one" in case you can't tell (which is why l is a terrible name). Be aware that if the sum of the l values exceeds 255, you can't get a uint8 image, which is perhaps what you were starting with, without clipping.

Weitere Antworten (1)

aichouche farouk
aichouche farouk am 27 Nov. 2017
for k=1:(i-1) if rem(k*dt,0.5)== 0 count =count+1; table(count,:)=[time(k) QX(k) FMA(k) FMR(k) SND(k) SNH(k) SNO (k) SS (k) XBA(k) XBH(k) XI (k) XND(k) XP(k) XS(k)]; end end

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by