How to multiply two matrices together?
2 次查看(过去 30 天)
显示 更早的评论
I need to create a new matrix C which is the sum of A multiplied by B(1)=1.7 and B(2)=1.1
>> A = [12 62 93 -8 22; 16 2 87 43 91; -4 17 -72 95 6]
A =
12 62 93 -8 22
16 2 87 43 91
-4 17 -72 95 6
>> B=[1.7 1.1]'
B =
1.7000
1.1000
I could just do:
>> A*1.7+A*1.1
ans =
33.6000 173.6000 260.4000 -22.4000 61.6000
44.8000 5.6000 243.6000 120.4000 254.8000
-11.2000 47.6000 -201.6000 266.0000 16.8000
but the real B I'm working with has too many numbers to just type them all
I tried bsxfun but it doesn't work
>> C=bsxfun(@times,A,B)
Error using bsxfun Non-singleton dimensions of the two input arrays must match each other.
0 个评论
采纳的回答
Azzi Abdelmalek
2013-10-28
编辑:Azzi Abdelmalek
2013-10-28
Notice that A*B(1)+A*B(2)+...+A*B(n) is equal to A*(B(1)+B(2)+...B(n))
A = [12 62 93 -8 22; 16 2 87 43 91; -4 17 -72 95 6];
B=[1.7 1.1]';
C=A*sum(B)
2 个评论
Azzi Abdelmalek
2013-10-28
A = [12 62 93 -8 22; 16 2 87 43 91; -4 17 -72 95 6];
B=[1.7 1.1]';
s=cell2mat(arrayfun(@(x) cos(A*x),B','un',0))
[n,m]=size(A);
p=numel(B);
C=sum(reshape(s,n,m,p),3)
更多回答(1 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Operators and Elementary Operations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!