How can I write a loop that performs a function to each element in a vector?
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Eden Crespo
el 3 de Dic. de 2017
Comentada: Star Strider
el 4 de Oct. de 2024
say I have a vector with numbers 234 456 687 643 23 45 and have a function which can only take one value at a time. How would I loop to call the function to each one of the values individually?
1 comentario
Ameerh
el 4 de Oct. de 2024
Write a program in MATLAB using for loop read all the elements of the vector and print them.
Respuesta aceptada
Star Strider
el 3 de Dic. de 2017
Ideally, you would write your function so that it would allow vectorized operations.
If that is not an option try something like this:
Result = zeros(1:length(vector)); % Preallocate
for k1 = 1:length(vector)
Result(k1) = YourFunction(vector(k1));
end
The length call could be replaced by size (with the appropriate dimension argument), or numel. They all have their appropriate uses, depending on your array.
7 comentarios
Ameerh
el 4 de Oct. de 2024
Write a program in MATLAB using for loop read all the elements of the vector and print them.
Star Strider
el 4 de Oct. de 2024
@Ameerh — Do exactly that. If you have problems, post a new Question with your code and describe the problem you are having with it.
I will not do your homeework for you!
Más respuestas (1)
Stephen23
el 3 de Dic. de 2017
Editada: Stephen23
el 3 de Dic. de 2017
vec = [234,456,687,643,23,45];
arrayfun(@fun,vec)
You might also like to read this:
3 comentarios
Stephen23
el 3 de Dic. de 2017
@Eden Crespo: your function returns non-scalar output arguments. Simply read the error message and do exactly what it states, that will solve the problem:
arrayfun(@fun,vec,'UniformOutput',false)
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!