Merhaba,
for k=1:5 for i=1:6 A(i,:)=Cust(i,:).*D(k,:) end end
D Matrisinin 1. Satırı; Cust Matrisinin her bir satırıyla tek tek çarpılarak 6 satırlık bir matris oluşturulsun. Daha sonra aynı işlem;
D Matrisinin 2. Satırı; Cust Matrisinin her bir satırıyla tek tek çarpılarak 6 satırlık bir matris oluşturulsun istiyorum.
Yukarıda yazdığım for döngüsü bana sadece 1 tane matris veriyor. Benim sonuçta elde etmek istediğim;
6'şar satırlık, toplam 5 matris. Nasıl yapabilirim?
Saygılarımla…
Bu şu demek oluyor, D matrisinin satır numarasını her seferinde 1 arttıracaksınız. Aşağıdaki örnek kodu inceleyebilirsiniz.
for kk=1:5
for k=1:5
for i=1:6
A(i,:)=Cust(i,:).*D(k,kk)
end
end
end
Tam olarak istediğimi elde edemedim. 
D =
1    1    0    1    1             %A1'i elde etmek için kullanılacak satır.
 0    0    1    0    1              %A2'i elde etmek için kullanılacak satır.
 1    1    1    1    0              %A3'i elde etmek için kullanılacak satır.
 0    0    0    1    0               %A4'i elde etmek için kullanılacak satır.
 1    1    0    0    0               %A5'i elde etmek için kullanılacak satır.
Cust =
2       3     6       7      1
 0       5     8       4      12
 11     6     14     5       8
 19    18    21    16      13
 3      9      8       7       10
 4      7      9       6        0
Yapmak istediğim;
A1= D'nin ilk satırı X(çarpı) tek tek Cust'ın tüm satırları
1 1 0 1 1 .* 2 3 6 7 1
1 1 0 1 1 .* 0 5 8 4 12
1 1 0 1 1 .* 11 6 14 5 8
1 1 0 1 1 .* 19 18 21 16 13
1 1 0 1 1 .* 3 9 8 7 10
1 1 0 1 1 .* 4 7 9 6 0
A1=    2     3     0      7    1
          0      5    0      4    12
          11    6    0      5    8
          19   18   0     16   13
          3      9    0      7    10
          4      7    0      6     0
 
A2=  
0    0    1    0    1 .* 2       3     6       7      1 
0    0    1    0    1 .* 0       5     8       4      12
0    0    1    0    1 .* 11     6     14     5       8
0    0    1    0    1 .* 19    18    21    16      13
0    0    1    0    1 .* 3      9      8       7       10
0    0    1    0    1 .* 4      7      9       6        0
 
A2=    0     0      6      0      1
          0     0      8      0      12
          0     0     14     0       8
          0     0      21    0      13
          0     0      8      0       10
          0     0      9      0        0
 
Benzer şekilde A3,A4 ve A5'i hesaplasın istiyorum.
 
Saygılarımla…
Merhaba,
Aşağıdaki örneği inceleyebilirsiniz,
%Rastgele Ornek D ve Cust matrislerini uretelim
D = randi([1 10],6,6)
Cust = randi([1 10],6,6)
for i =1:6; %D'nin satirlarini degistirecek
    for s = 1:6; %Cust satirlarini degistirecek     
        A(s,:,i)=D(i,:).*Cust(s,:); %Carpmayi yaparak sonuclari A'da depolayacak  
    end    
end
Çok fazla meşgul ettiğim için özür dileyerek;
A(s,:,i)=D(i,:).*Cust(s,:); satırı için hata veriyor.
Ne hatası alıyorsunuz? Ben yukarıdaki örneği 6ya6lık matrisler için verdim. Eğer sizin matrisleriniz (A ve Cust) 6ya6lık değil ise i ve s değerlerini ona göre değiştirmelisiniz.
Lütfen sormaktan çekinmeyin.
Boyut uyuşmazlığı hatası veriyor. Ben önce sizin yazdığınız kodu çalıştırdım. Daha sonra kendi i ve s değerlerimi ekleyecektim. Sonuç şu şekilde;
>> sdsf
D =
     7     2     4     3     3     1
     4     5     4     3     8     2
     3     4     2     5     1     2
     6     5     3     2     4     3
     9     9     1     5     1     2
     5     5     5     8     3     2
Cust =
     6     6    10     8     4    10
    10     3     5     7     9    10
    10     1    10     6     9     6
     3     5     8     3     5     4
     5     2     1     8     4     9
     4     1     7     3     7     5
Subscripted assignment dimension mismatch.
Error in sdsf (line 7)
        A(s,:,i)=D(i,:).*Cust(s,:); %Carpmayi yaparak sonuclari A'da
        depolayacak
Bir yerlerde yanlışlık yaptığınızı düşünüyorum. Kod aşağıdaki gibi hata vermeden çalışmaktadır.
 
%D ve Cust matrislerini uretelim
D = [7 2 4 3 3 1;
    4 5 4 3 8 2;
    3 4 2 5 1 2;
    6 5 3 2 4 3;
    9 9 1 5 1 2;
    5 5 5 8 3 2];
Cust = [6 6 10 8 4 10;
    10 3 5 7 9 10;
    10 1 10 6 9 6;
    3 5 8 3 5 4;
    5 2 1 8 4 9;
    4 1 7 3 7 5];
for i =1:6; %D'nin satirlarini degistirecek
    for s = 1:6; %Cust satirlarini degistirecek
        A(s,:,i)=D(i,:).*Cust(s,:); %Carpmayi yaparak sonuclari A'da depolayacak
    end
end
A Matrisinin çıktısı da aşağıdaki gibidir:
 
val(:,:,1) =
42 12 40 24 12 10
 70 6 20 21 27 10
 70 2 40 18 27 6
 21 10 32 9 15 4
 35 4 4 24 12 9
 28 2 28 9 21 5
val(:,:,2) =
24 30 40 24 32 20
 40 15 20 21 72 20
 40 5 40 18 72 12
 12 25 32 9 40 8
 20 10 4 24 32 18
 16 5 28 9 56 10
val(:,:,3) =
18 24 20 40 4 20
 30 12 10 35 9 20
 30 4 20 30 9 12
 9 20 16 15 5 8
 15 8 2 40 4 18
 12 4 14 15 7 10
val(:,:,4) =
36 30 30 16 16 30
 60 15 15 14 36 30
 60 5 30 12 36 18
 18 25 24 6 20 12
 30 10 3 16 16 27
 24 5 21 6 28 15
val(:,:,5) =
54 54 10 40 4 20
 90 27 5 35 9 20
 90 9 10 30 9 12
 27 45 8 15 5 8
 45 18 1 40 4 18
 36 9 7 15 7 10
val(:,:,6) =
30 30 50 64 12 20
 50 15 25 56 27 20
 50 5 50 48 27 12
 15 25 40 24 15 8
 25 10 5 64 12 18
 20 5 35 24 21 10
Evet bu haliyle çalıştı ve istediğim sonucu alabildim. Çok teşekkür ederim.
Saygılarımla
