How can I pass an array to Matlab function?

82 visualizaciones (últimos 30 días)
Keen
Keen el 5 de Jul. de 2018
Respondida: Keen el 8 de Jul. de 2018
Hi all, Would you please advise how can I pass an array to Matlab function so that I can use each element in the array to calculate different outputs? Kind regards,

Respuestas (2)

James Tursa
James Tursa el 5 de Jul. de 2018
Editada: James Tursa el 5 de Jul. de 2018
This is going to depend on whether the function in question is vectorized or not. E.g., suppose the function is vectorized:
function result = myfun(x)
result = x.^2;
end
Then you would call it like this:
x = whatever
y = myfun(x);
But suppose the function is not vectorized:
function result = myfun(x)
result = x^2; % <-- Note the use of ^ instead of .^
end
Then you would be stuck with a loop:
x = whatever
y = zeros(size(x));
for k=1:numel(x)
y(i) = myfun(x(i));
end
Or you could use the arrayfun() function (with the loop hidden in the background):
y = arrayfun(@myfun,x);
The above examples assume that the output of the function for a scalar input is also scalar. If that is not the case then different code would be needed to store the results.

Keen
Keen el 8 de Jul. de 2018
Many thanks, it was really helpful.

Categorías

Más información sobre Loops and Conditional Statements 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