How to multiply a matrix to another cell matrix
24 次查看(过去 30 天)
显示 更早的评论
Hello
I have a 3*3 matrix such as
[1 0 0;
8 23 1;
5 7 10]
On the other hand, I have matrix 2000*1 containing 2000 cell arrays which are 3*4 matrices such as
[ [3*4];
[3*4];
[3*4];
.
.
]
I want to multiplythis 3*3 matrix to each of 3*4 matrices in the big matrix and obtain a final 2000*1 matrix. I have seen the code @(x)x.*matrix in MATLAB forum.
However, it gives out a function handle..I need to use the numeric output. What should i do?
1 个评论
David Hill
2021-5-14
You need to explain more. How are you getting a 2000x1 matrix? What do you mean when you say multiply? 3x3 * 3x4 = 3x4 matrix, you cannot perform element-wise multiplication on different sized matrices.
采纳的回答
更多回答(1 个)
Jan
2021-5-14
编辑:Jan
2021-5-14
Create a simple loop:
A = rand(3, 3);
for iC = 1:numel(C) % Where C is your cell
C{iC} = A * C{iC};
end
The approach with cellfun looks smart, but it is slower:
C = cellfun(@(c) A*c, C, 'UniformOutput', false);
By the way, .* is the elementwise operation. You need *, because the matrix and the cell elements do not have the same number of elements.
2 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrices and Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!