Info
此问题已关闭。 请重新打开它进行编辑或回答。
How to "vectorize" this operation?
2 次查看(过去 30 天)
显示 更早的评论
Hi,
I have data of sample size m of n by n matrices in an n by m*n matrix call it P.
I also have a function, call if f, that operates on a fixed vector, call it v, and n by n matrices.
I want to to create a 1 by m vector, call it d, by operating f on v and each of the n by n matrices in P.
So, say for example, n = 3 and m = 6 I would want:
d(1) = f(v,P(:,1:3)), d(2) = f(v,P(:,4:6)), . . ., d(6) = f(v,P(:,16:18))
How can I do this without making a loop?
Thanks!
3 个评论
回答(1 个)
Matt J
2013-4-12
This looks like it avoids a for-loop, but doesn't really.
P=reshape(P,n,n,m);
d= arrayfun(@(i) f(v,P(:,:,i)) , 1:m);
1 个评论
此问题已关闭。
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!