2010-10-15 22 views
7

içinde farklı değerlere bölerim. Matrisin M = ones(3); matrisine sahip olduğumu ve her satırı farklı bir sayıya (örneğin, C = [1;2;3];) bölmek istediğimi söylerim.Matlabın satırlarını MATLAB (dizi bölümü)

1 1 1 -divide_by-> 1  1 1 1 
1 1 1 -divide_by-> 2 = 0.5 0.5 0.5 
1 1 1 -divide_by-> 3  0.3 0.3 0.3 

Bunu döngüler kullanmadan nasıl yapabilirim? C aşağıdaki forma sahiptir, oysa here

result = M./C 

belirtildiği gibi

cevap

6

kullanımlar doğru dizi bölümü:

C = [ 1 1 1 ; 2 2 2 ; 3 3 3 ]; 

DÜZENLEME:

result = bsxfun(@rdivide, M, [1 2 3]'); % untested ! 
+0

önce bu belgelere geçti. Yine de, her iki matrisin de aynı boyuta sahip olması gerektiğini açıkça belirttiler. Durum böyle değil. Ben de düşünüyordum: elementi elemente göre elementi gerçekleştirmek için vektörü aynı büyüklükteki bir matrise genişletmek mümkün mü? – adn

+3

, ilki temel olarak 'M./Repmat (C, 1,3) 'dir. Ek bir çözüm: 'M ./ (C * olanlar (1,3))', BSXFUN kullanmayı tercih etsem de. – Amro