How can I write a loop that performs a function to each element in a vector?
4 次查看(过去 30 天)
显示 更早的评论
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 个评论
Ameerh
2024-10-4
Write a program in MATLAB using for loop read all the elements of the vector and print them.
采纳的回答
Star Strider
2017-12-3
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 个评论
Ameerh
2024-10-4
Write a program in MATLAB using for loop read all the elements of the vector and print them.
Star Strider
2024-10-4
@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!
更多回答(1 个)
Stephen23
2017-12-3
编辑:Stephen23
2017-12-3
vec = [234,456,687,643,23,45];
arrayfun(@fun,vec)
You might also like to read this:
3 个评论
Stephen23
2017-12-3
@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)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!