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);

 Akzeptierte Antwort

Walter Roberson
Walter Roberson am 22 Nov. 2017

1 Stimme

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!

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by