matrix divide in an array or 2d matrix.
2 次查看(过去 30 天)
显示 更早的评论
I have a matrix that is 10000x10000x15. I need to divide each element in the first two dimension by a matrix that is 3x15. I could do this in a loop, i.e.
mat = rand(10000,10000,15);
submat = rand(3,15);
newmat = zeros(10000,10000,3);
for i =1:10000
for j = 1:10000
newmat(i,j,1:3)=reshape(mat(i,j,1:15),1,15)/submat;
end
end
but that would take a long time. Is there a better way to accomplish this that can do the division on the matrix as a whole?
0 个评论
采纳的回答
Sean de Wolski
2014-11-25
编辑:Sean de Wolski
2014-11-25
You can do the whole divide at once, using n instead of 10000 to avoid killing my laptop:
mat2 = reshape(mat,n^2,15);
nm2 = mat2/submat;
nm2 = reshape(nm2,n,n,3);
% Check equality
isequal(nm2,newmat)
ans =
1
更多回答(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!