Is it possible to call a vector(row/column) into a matrix instead of using for loop ?
1 次查看(过去 30 天)
显示 更早的评论
I have one 3X3 matrix where each element of the matrix is a function of some variable 'x',
Also, I have another vector 10x1 which contain all the values of 'x'.
I need to have a 3X3 matrix for each value of 'x' such that the resultant matrix becomes 3X3X10 (3D matrix).
I know the method of the 'for loop', but is it possible to get the same answer using vectorization and reshaping.
Code :-
Following is the code :-
if true
phi=0:pi/8:(2*pi);
Rphi=zeros(3,3,length(phi));
for i=1:length(phi)
Rphi(:,:,i)=[cos(phi(i)) sin(phi(i)) 0;-sin(phi(i)) cos(phi(i)) 0;0 0 1];
end
end
What I want is that to use some sort of vectorization instead of 'for' loop. hope it clarifies the question.
1 个评论
Stephen23
2018-6-21
@Rabindra Biswas: what does " each element of the matrix is a function of some variable" mean? Do you have a function of a scalar x that returns a 3x3 matrix? If so, is the code in that function vectorized in any way? Can you please upload the code by clicking the paperclip function.
采纳的回答
Stephen23
2018-6-21
编辑:Stephen23
2018-6-21
If the function fun has been written to accept a 1x1xN vector, then of course your could do this:
fun(reshape(x,1,1,[]))
This depends on how function fun has been written: if function fun only accept a single scalar input then you will have to use a loop (implicitly or explicitly).
7 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!