MATLAB: Comparaison et addition de deux matrices

a = [9,41,48,0,0,0,0,0,0; 15,47,56,0,0,0,0,0,0; 25,67,0,0,0,0,0,0 ]; b = [21; 11; 30]; J’ai trois rangées en a et b. J’ai besoin de comparer a avec b par exemple je prends 21 de b et compare avec la première ligne de a, la première valeur de la première colonne de la colonne est 9, mais la valeur de b est 21 sa plus grande que a donc les colonnes restantes de la première ligne devraient être ajouté par 5 sauf zéro [9, 46, 53,0,0,0,0,0]. De même dans la deuxième rangée de a doit être comparée à la deuxième rangée de b [20,52,61,0,0,0,0,0]. Troisième rangée [25,72,0,0,0,0,0,0,0]. Enfin mon a = [9,46,53,0,0,0,0,0; 20,52,61,0,0,0,0,0; 25,72,0,0,0,0,0 , 0]. suggérer avec quelques points.

Meilleure réponse

  • Recherchez « adressage logique » …
     

    >> ix=[b<a(:,1) a(:,2:end)>0];
    >> a(ix)=a(ix)+5
    a =
    9 46 53 0 0 0 0 0
    20 52 61 0 0 0 0 0
    25 72 0 0 0 0 0 0