How can I transmit multiple variables to a function in the form of a single array?

2 次查看(过去 30 天)
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)

采纳的回答

Jan
Jan 2021-3-7
编辑:Jan 2021-3-7
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 个)

类别

Help CenterFile Exchange 中查找有关 Resizing and Reshaping Matrices 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by