defining a function output properly
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Riccardo Tronconi
el 17 de Jun. de 2021
Hi guys! I have a problem in properly defining my output in a function.
According to n= max(position{:,4}); I have different T1, T2,..Tn as arrays.
But how to define all of these in my function output if I do not know in advance how many of them I will have?
[T,n] = paramdisp(position)
Doing so it does not work.
Thanks. I'm new to matlab.
0 comentarios
Respuesta aceptada
Steven Lord
el 17 de Jun. de 2021
So you want to call a function that can return different numbers of outputs and you want to get a number of outputs that is only known when the code is run not when it is written?
Can you define variables with numbered names like X1, X2, X3, ... ? Yes.
% Sample data
A = magic(5);
% Preallocate the cell to hold the desired number of outputs
numOutputs = 2;
theOutputs = cell(1, numOutputs);
% Fill in the cell
[theOutputs{:}] = svd(A);
% Call the function with the same number of outputs specified explicitly
% when the code is written so we can compare to the comma-separed list
[output1, output2] = svd(A);
% Compare the two approaches
isequal(theOutputs{1}, output1)
isequal(theOutputs{2}, output2)
If you wanted to call svd with three outputs using the theOutputs cell array the only thing you'd need to change is the line that defines the numOutputs variable.
2 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!