PDA

View Full Version : ضرب ستون به ستون ماتریس ها



hamidkor
شنبه 06 اردیبهشت 1393, 23:59 عصر
باسلام

ضمن خسته نباشید و تشکر بابت زحمات بی دریغ دوستان گرامی. میخواستم بدونم که اگر دو ماتریس را بخواهیم بصورت ستونی (یعنی هر ستون از ماتریس اول رو در همه ستون های ماتریس دوم) ضرب کنیم چه دستور و یا برنامه ای میتوان بکار برد؟ بعنوان مثال ماتریس های a و b را درنظر بگیرید، باضرب این دوماتریس به شیوه ای که بیان شد جواب ماتریس c خواهد بود.

a

1
2
3


4
6
8


9
7
5


b

1
2


2
3


3
4




c

1
2
3
2
4
6


8
12
16
12
18
24


27
21
15
36
28
20




قبلا از راهنمایی های شما دوستان عزیز کمال تشکر را دارم.

rahnema1
یک شنبه 07 اردیبهشت 1393, 06:55 صبح
سلام
با این دو روش میشه انجام داد

c=reshape(repmat(b,cols(a),1),rows(b),cols(a)*cols (b)).*repmat(a,1,cols(b));


c=zeros(rows(a),cols(a)*cols(b));
for i=0:(cols(b)-1)
c(:,i*cols(a)+1:(i+1)*cols(a))=b(:,i+1).*a;
end

hamidkor
یک شنبه 07 اردیبهشت 1393, 23:10 عصر
روش هاتون خیلی جالب بنظر می رسه، واقعیتش خودم از کد زیر استفاده میکردم که حلقه زیاد داره و زننده است! بهرحال ممنون از لطفتان


c=zeros(size(a,1),size(a,2)*size(b,2));
k=1;
for i=1:size(b,2)
for j=1:size(a,2)
c(:,k)=(b(:,i).*a(:,j));
k=k+1;
end
end