Borrar filtros
Borrar filtros

How to multiply a window function to one dimension?

4 visualizaciones (últimos 30 días)
John
John el 6 de Jun. de 2014
Editada: John el 16 de Jun. de 2014
Here is a Matlab script to apply a fixed window function along one dimension. Although it works, but is not elegant as a Matlab script. Can it be made more elegant? Thanks.
[L1, L2, L3, L4, L5, L6] = size(fids);
for n1=1:L1
for n3=1:L3
for n4=1:L4
for n5=1:L5
for n6=1:L6
fids(n1,:,n3,n4,n5,n6) = fids(n1,:,n3,n4,n5,n6) .* window;
end
end
end
end
end
Where window is a vector with the size equal to L2.
  3 comentarios
José-Luis
José-Luis el 12 de Jun. de 2014
Editada: José-Luis el 12 de Jun. de 2014
Jian, as an aside: It would be nice if you gave some more feedback on the questions you have asked in the past. Please accept answers if they solved your problem or explain why a given answer does not do what you wanted.

Iniciar sesión para comentar.

Respuesta aceptada

Chad Greene
Chad Greene el 6 de Jun. de 2014
Editada: Chad Greene el 6 de Jun. de 2014
Since you didn't give us your fids or window data, I'll make them up:
fids = rand(4,5,6,7,8,9);
window = 2*ones(1,5)-3;
Now your entire script you provided in your question can be replaced by this:
fids = bsxfun(@times,fids,window);
  2 comentarios
Image Analyst
Image Analyst el 13 de Jun. de 2014
You are incorrect. Chad's fids is a 6 dimensional array.
John
John el 16 de Jun. de 2014
Editada: John el 16 de Jun. de 2014
Hi, Chad:
Thanks for the good answer. I understand it now. Matlab's doc on @times is very primitive.
So, if the vector is to apply to the 4th dimension, your vector should be defined as:
window = 2*ones(1,1,1,7)-3;
Back to the vector in the original question. It has to be arranged as
window = reshape(window, [1,size(window)]);
fids = bsxfun(@times,fids,window);
and if the multiplication is to the 4th dimension, arrange it as:
window = reshape(window, [1,1,1,size(window)]);
Correct?

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Resizing and Reshaping Matrices en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by