First time matlab user problem Matrix dimensions must agree?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Hi,
I'm a first time matlab user and I've run into a bit of a problem I keep getting an error. Here is my sequence of codes:
derivefilter(FREQSPEC,600);
handle =
1
y =
173.0011
ans =
173.0011
filtering=applyfilter(pic1,ans);
Error using .*
Matrix dimensions must agree.
Error in applyfilter (line 3)
filteredspec=imgspec.*filter;
Here is the script "applyfilter":
function y=applyfilter(img,filter)
imgspec=fftshift(fft2(img));
filteredspec=imgspec.*filter;
y=real(ifft2(fftshift(filteredspec)));
Any help would be appreciated thanks.
0 comentarios
Respuesta aceptada
Image Analyst
el 23 de Abr. de 2013
What does derivefilter() return? You're not accepting any matrix for the filter that you can then pass in to applyfilter() instead of ans. You may need to have something like
myFilter = derivefilter(FREQSPEC,600);
filtering=applyfilter(pic1, myFilter);
but we can't tell until we know what's inside derivefilter().
6 comentarios
Walter Roberson
el 24 de Abr. de 2013
pic1 = rgb2gray(pic1); %convert to 600x600
but you also need to solve the other issues.
Más respuestas (2)
Leah
el 23 de Abr. de 2013
imgspec and filter must have the same dimension to do a element-wise multiplications
size(imspec)
size(filter)
0 comentarios
Jan
el 23 de Abr. de 2013
Editada: Jan
el 23 de Abr. de 2013
Your code would be easier to read, if you spend the time for reading the manuals for this forum and format the code properly.
It looks like:
imgspec .* filter
cannot work, because the array sizes do not match. This is surprising, because the value of filter seems to be a scalar.
Using ans explicitly is a bad idea, because this value is very volatile and debugging can change the value. filter is not a good choice also, because this is a name of an important built-in function.
2 comentarios
Jan
el 24 de Abr. de 2013
@Azfar: Then it is the job of your supervisor to find the solution. We cannot guess how this should be fixed, because all we see is the failing code. To find a solution, one has to know the intention of the code, but wrong code cannot carry this kind of information.
Ver también
Categorías
Más información sobre Matrix Indexing en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!