I want to copy the rows of G1 to G2 in inner for loop but error occurs , please help
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
G1 = [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1;
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1;
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1;
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1;
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1;
0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1;
0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1;
0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1;
0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1;
0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1;
0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1];
m=4;
r=4;
k=0;
n=2^m;
k=15;
for a=r:-1:2
M=factorial(m)/(factorial(m-a)*factorial(a));
G2 = zeros(M,n);
for o=1:1:M
G2(o,:) = G1(k,:);
k=k-1;
end
end
0 commentaires
Réponses (1)
Daniel kiracofe
le 13 Nov 2016
the first time through the loops, k = 15. but size(G1) is 11x16. So the first time you are effectively doing
G2(o,:) = G1(15,:)
which doesn't work. Maybe you meant this instead?
G2(:, o) = G1(:,15)
2 commentaires
Daniel kiracofe
le 13 Nov 2016
That doesn't change anything about my previous comment. at the conclusion of this section of the code
for i=1:r k= k+factorial(m)/(factorial(m-i)*factorial(i)) end
the variable k has the value 15. And G1 has size 11x16 = 11 rows and 16 columns.. So G1(k,:) is asking to access the 15th row of a matrix that has only 11 rows. You can't copy a row that doesn't exist.
Voir également
Catégories
En savoir plus sur Matrix Indexing dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!