How to change a matrix within a function

I want to pass a matrix into a function and to change the matrix within the function. For example, in my case I want to set some elements of the matrix:
function setRedComponent(Image,val)
Image(:,:,1)=val;
end
Image is a 3D matrix representing an RGB image.
I know I can return the image, but I prefer to use the function as follows:
I=zeros(64,64,3);
setRedComponent(I,255);
and not
I=zeros(64,64,3);
I = setRedComponent(I,255);

 Réponse acceptée

function setRedComponent(Image,val)
Image(:,:,1)=val;
inname = inputname(1);
if ~isempty(inname)
assignin('caller', inname, Image);
end
end
This style of coding is not recommended at all!

Plus de réponses (0)

Catégories

En savoir plus sur Images dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by