Saving data in a loop as a vector
13 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
sourestdeeds
el 20 de Nov. de 2016
Comentada: dpb
el 20 de Nov. de 2016
I have a binomial expansion which requests the user to input an x value between (-1,1). I am trying to save the term by term output of the above code into a vector but everything i try gives me an error. I think its perhaps because my n sequence starts at zero? If i try to put binx(n) = .... it throws an error.
I basically just want to save all the passes through the loop in a single vector, currently it only saves the last one. All other examples I've found online don't seem to work in this case.
0 comentarios
Respuesta aceptada
dpb
el 20 de Nov. de 2016
Indeed, Matlab arrays are immutably 1-based...just compute an index...
N=12; % generalize number terms...
binx=zeros(N+1,1); % preallocate for output
term=binx;
idx=0; % index variable initialize...
for n=0:N
idx=idx+1; % and increment first...
term(idx) = ...
binx(idx) = binx(idx-1) + term;
...
Of course, w/ Matlab, you could compute term() then bin becomes
bin=cumsum(term);
after the loop. This then would cause rearrangement of your output displays, so not necessarily the thing to do here; simply pointing out Matlab vectorized syntax in general...
3 comentarios
dpb
el 20 de Nov. de 2016
Woops...forgot to special-case the first instance of idx-1; better route would be to compute the first value prior to entering the loop, the run the loop from 1:N, and initializing idx=1 instead of 0.
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!