How to call the rows of a matrix without the for loop
5 次查看(过去 30 天)
显示 更早的评论
Hi I have a matrix A=[1 2 3 4 5;6 7 8 9 10; 11 12 13 14 15] and I want to call each row of the matrix one by one as an input to my program. i.e, A(1,:) is taken as first input, A(2,:) is the second input and finally A(3,:), just like it is done in a loop, but is there any way that I can do the same without using a for loop.
Any help would be much appreciated.
1 个评论
Fangjun Jiang
2017-12-12
Do you want MyFun(A(1,:),A(2,:),A(3,:)), or MyFun(A(1,:)), MyFun(A(2,:)), MyFun(A(3,:))? How do you plan to do it using for-loop?
采纳的回答
KL
2017-12-12
Probably convert them to cell array and then the use of comma-separated lists,
B = num2cell(A,2)
and then
your_program(B{:})
3 个评论
KL
2017-12-12
编辑:KL
2017-12-12
...for further processing in your_program...
if you're talking about handling them inside your_program, it's pretty normal like,
function out = your_program(a,b,c)
x = a(1);
...
or if you are talking about indexing only specific elements while calling your_program, you should create your cell array with those elements.
更多回答(0 个)
另请参阅
类别
在 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!