Building array with custom function

2 visualizzazioni (ultimi 30 giorni)
Mateusz Brzezinski
Mateusz Brzezinski il 20 Lug 2020
Commentato: Roger J il 20 Lug 2020
Hello,
I am facing a problem with building an array using a custom function.
I would like to transfer a task from the main script file to the function file. I have such a piece of script:
StageMain=0;
TStart=10;
TEnd=500;
TStep=0.001;
Tmag=1;
.
.
.
DataInput = ones(length(StageMain),8);
Tarray = ones(1,length(StageMain));
.
.
.
T=TStart;
while T<TEnd
T=T+TStart*StageMain;
StageMain=StageMain+TMag;
DataInput(StageMain,1) = double(T);
Tarray(1, StageMain) = double(T);
end
its job is to build (actually update) two arrays DataInput and Tarray. Now I am trying to put this in function file which also will give me two updated arrays.
function [DataInput, Tarray] = arraybuilder(TStart, TEnd, TStep, TMag, StageMain)
T=TStart;
while T<TEnd
T=T+TStep*StageMain;
StageMain=StageMain+TMag;
DataInput(StageMain,1) = double(T);
Tarray(1, StageMain) = double(T);
end
however, it only builds one vertical array that has double-length and the first part is filled with 0 and the second one with correct answers for DataInput
Thank you for any ideas.
  5 Commenti
Mateusz Brzezinski
Mateusz Brzezinski il 20 Lug 2020
Ok, that is just my stupidity, I was calling it using "pure" arraybuilder(3.372510000000000e+02,380,.001,1,0) and expecting to get two outputs. After calling it like you did it [X Y] it works like a charm.
Thank you.
Roger J
Roger J il 20 Lug 2020
Good! We've all been there. Mark the answer accepted, if you can.

Accedi per commentare.

Risposta accettata

Roger J
Roger J il 20 Lug 2020
If you don't assign the return values from a function call, then only the first is assigned to the default
ans
variable.

Più risposte (0)

Categorie

Scopri di più su Graphics Performance in Help Center e File Exchange

Prodotti


Release

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by