How can I transmit multiple variables to a function in the form of a single array?
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
My function has 20 inputs, in other words, it looks something like this:
function [output1,output2]=multi_input(a,b,c,d,e,f,g,h,i,j,k)
...
end
Now of course, the obvious answer would be, to me, rewrite the function as accepting a single input. But let's say I don't want to do this. How can I, in an effort to have a better readable code that doesn't go over the margin, tell multi_input.m to treat an array A that is a 1x20 to accept each array element as an input to the function? In other words, using the function like this:
A(1)=...;
A(2)=...;
...
A(20)=...;
[output1,output2]=multi_input(A)
0 Commenti
Risposta accettata
Jan
il 7 Mar 2021
Modificato: Jan
il 7 Mar 2021
You can use a struct:
S.a = a;
S.b = b;
...
[output1,output2] = multi_input(S)
function [output1,output2] = multi_input(S)
"code that doesn't go over the margin" - you can use the line continuation:
function [output1, output2] = multi_input( ...
a, b, c, d, e, ...
f, g, h, i, j, k)
"tell multi_input.m to treat an array A that is a 1x20 to accept each array element as an input" - this is no valid Matlab syntax and there is no magic trick to expand the Matlab syntax to your needs. The nature of programming is to express the problem in the existing language, not to adjust the language to the fit the problem.
0 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Whos in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!