Output each for loop iteration to separate arrays

I have a function which relies on a few inputs, all of these inputs will be the same for each iteration apart from one which will be changing. I want to output each iteration of the loop to a different array.
I've tried doing it using a cell array as below.
Here's an example of the code.
for b = [0:0.1:5]
cell_array{b} = function(a,b,c)
end
With this I get an error saying: 'Cell contents indices must be greater than 0' which I assume is because of the '0' in vector b. If I alter it to be:
for b = [0:0.1:5]
cell_array{1:51} = function(a,b,c)
end
I get the error saying: 'Expected one output from a curly brace or dot indexing expression, but there were 5 results.'
Is there a better way of getting each iteration to output separately?

 Respuesta aceptada

Try this:
fun = @(a,b,c) a + b - c; % Create Function
a = 3; % Create Data
c = 11; % Create Data
for b = 1:6
cell_array{b} = fun(a, b-1, c);
end

4 comentarios

mathman
mathman el 1 de En. de 2018
I should've said before in my actual code the values I want to change are not integers so doing what you proposed gives me a subscript error.
MATLAB subscripts are integers greater than zero.
It would help tremendously if I did not have to guess what you are thinking.
Try this:
fun = @(a,b,c) a + b - c; % Create Function
a = 3; % Create Data
b = rand(1,6); % Create Data
c = 11; % Create Data
for k = 1:6
cell_array{k} = fun(a, b(k), c);
end
mathman
mathman el 1 de En. de 2018
Apologies for that, it slipped my mind.
It did work though so thanks for that. Nice solution aswell.
As always, my pleasure.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 1 de En. de 2018

Comentada:

el 1 de En. de 2018

Community Treasure Hunt

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

Start Hunting!

Translated by