How can I pass an array to Matlab function?

87 visualizzazioni (ultimi 30 giorni)
Keen
Keen il 5 Lug 2018
Risposto: Keen il 8 Lug 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,

Risposte (2)

James Tursa
James Tursa il 5 Lug 2018
Modificato: James Tursa il 5 Lug 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 il 8 Lug 2018
Many thanks, it was really helpful.

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by