Permutation based on array indices
7 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
lilly lord
le 5 Fév 2021
Commenté : lilly lord
le 5 Fév 2021
Hi. I want to permute elemnts of a row matrix w.rt to anothe matrix of the same dimension. Below is the part of the code but it gives error.
E3 =[4,73,1,76,109,224,199,134,80,253,156,177,166,167,29,48,206,127,99,234,240,93,102,231,12,65,255,78,79,254,94,239,25,52,31,46,98,235,82,251,72,5,2,75,181,152,43,34,233,100,243,90,182,151,145,188,8,69,3,74,35,42,161,172,221,112,63,14,248,85,115,218,108,225,19,58,66,11,173,160,191,142,144,189,28,49,27,50,241,92,184,149,185,148,129,204,60,17,107,226,211,122,21,56,86,247,6,71,20,57,119,214,33,44,0,77,238,95,96,237,9,68,217,116,201,132,200,133,61,16,170,163,197,136,118,215,59,18,154,179,153,180,114,219,124,209,210,123,126,207,117,216,178,155,23,54,194,139,162,171,157,176,87,246,83,250,7,70,213,120,45,32,249,84,26,51,30,47,135,198,159,174,193,140,64,13,53,24,192,141,55,22,183,150,67,10,212,121,40,37,97,236,81,252,143,190,38,39,164,169,101,232,175,158,110,223,128,205,113,220,203,130,91,242,244,89,138,195,105,228,165,168,125,208,202,131,230,103,106,227,111,222,15,62,137,196,41,36,186,147,229,104,88,245,146,187];
X=[0,241,62,150,100,54,97,104,235,252,5,23,255,135,40,57,232,167,102,222,10,233,78,3,162,24,7,130,118,196,13,39,17,151,238,64,136,215,159,254,37,192,63,163,25,133,14,143,9,216,50,73,123,224,207,98,92,227,112,30,33,174,134,198,121,253,15,147,140,124,90,36,157,113,42,206,127,26,60,103,172,244,94,4,72,218,116,248,188,195,101,168,35,182,107,56,219,138,21,86,110,145,217,66,152,111,228,230,81,76,200,156,183,202,45,52,229,84,209,181,65,125,144,142,18,226,82,11,70,186,179,27,109,88,203,249,80,51,245,193,93,87,68,41,204,132,22,2,170,160,69,210,234,239,180,43,237,197,137,191,67,201,115,61,247,139,47,19,44,164,214,29,16,95,165,240,58,146,6,190,213,28,119,74,75,141,131,96,99,129,71,236,48,108,114,85,251,20,128,153,212,177,250,166,242,32,77,8,155,173,117,205,225,79,49,126,171,89,53,55,158,246,223,189,91,148,59,185,46,105,175,220,208,154,199,1,12,122,243,106,176,31,83,34,38,221,169,194,187,211,178,120,231,149,184,161];
E=X(E3);
Error
Array indices must be positive integers or logical values.
Can any one figure out whats the problem.
Both E3 and X are of class double
2 commentaires
Joseph van 't Hoff
le 5 Fév 2021
it is not a problem that E3 consists of doubles, the problem is that E3(115)=0. Therefore you're trying to access the zeroth element of array X, which doesn't exist (Matlab starts indices at 1)
If you do E3(115)=1 and then E=X(E3) it does work (although I assume what you are trying to do is E3a=E3+1 and then E=X(E3a) )
Réponse acceptée
Joseph van 't Hoff
le 5 Fév 2021
element 115 of your array E3 is zero, all indices have to be positive integers
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Matrices and Arrays 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!