Improving speed in construction of a matrix
1 次查看(过去 30 天)
显示 更早的评论
Hi.
Im currently implementing a code, where part of the code constructs a matrix several million times. Currently, the construction of this matrix takes much more time, than the actual computing invovled with the matrix. Its a rather simple matrix, but takes a third of the total runtime. I want to construct it faster, but cant seem to bring the time down. Ive tried two approaches.
One implementation:
B = zeros(9,9);
B(1:3,1) = A(1,:);
B(4:6,2) = A(1,:);
B(7:9,3) = A(1,:);
B(1:3,4) = A(2,:);
B(4:6,5) = A(2,:);
B(7:9,6) = A(2,:);
B(1:3,7) = A(3,:);
B(4:6,8) = A(3,:);
B(7:9,9) = A(3,:);
And the other implementation:
Z = zeros(3,1);
B =[A(:,1) Z Z A(:,2) Z Z A(:,3) Z Z
Z A(:,1) Z Z A(:,2) Z Z A(:,3) Z
Z Z A(:,1) Z Z A(:,2) Z Z A(:,3)];
Both giving a inaduqate execution time. Is there a faster way to construct this type of matrix?
6 个评论
采纳的回答
Benjamin Thompson
2024-1-20
Not sure where your data for A is coming from, or where the output of B is going to. if each A -> B mapping is independent try parfor if you have a multicore processor or using a gpuArray.
0 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!