Wie ändere ich nur die Werte ungleich Null der ersten 5 Spalten eines 10x10 Arrays?MATLAB Indexing - Nur Elemente ungleich Null von bestimmten Spalten ändern
Antwort
Die erste Alternative ist es, die Spalten, die Sie ändern möchten, und binäre Indizierung zu verwenden:
A = round(rand(10, 10));
B = A(:, 1:5);
B(B ~= 0) = 10;
A(:, 1:5) = B
Eine zweite Alternative ist eine Maske wie folgt zu verwenden:
A = round(rand(10, 10));
mask = zeros(size(A));
mask(:, 1:5) = 1;
A(A~=0 & mask) = 10
ich, dass Sie gesehen haben akzeptiere schon die richtige Antwort, also füge ich nur für die Dokumentation eine Lösung mit einer Zeile und einer Variablen hinzu, wenn es jemand bequemer findet:
A((A(:,1:5))~=0)=10
EDIT:
Für @ m7913d Kommentar, allgemeinere Lösung für Spalten n1 bis n2 kann, BE-
A((n1-1)*size(A,1)+find(A(:,n1:n2)~=0))=10
Schöne One-Line-Lösung. Beachten Sie, dass diese Lösung nur für die ersten n Zeilen funktioniert. Das Ergebnis wird für die etwas andere Frage, bei der Sie die Spalten n1 bis n2 ändern möchten, nicht korrekt sein. – m7913d
@ m7913d Sie haben absolut recht. Ich habe meine Antwort auf einen allgemeineren Fall bearbeitet – Adiel
- 1. Kopieren von Spalten nur wenn ungleich false
- 2. data.table nur Spalten unter bestimmten Bedingungen ändern
- 3. in Matlab löschen Sie eine ganze Zeile, wenn die Elemente in bestimmten Spalten gleich Null sind
- 4. Matlab lesen letzten Eintrag des Vektors ungleich Null
- 5. negative doppelte Null ungleich Null?
- 6. Importieren von bestimmten Ferndaten (nur von Spalten)
- 7. scipy.sparse Matrix: subtrahieren Zeile Mittelwert zu ungleich Null Elemente
- 8. Wie Abfrage Elemente in Mongodb mit einem bestimmten Wörterbuch einschließlich mindestens einen Wert ungleich Null?
- 9. Zusammenführen von Datenrahmen nur nach bestimmten Spalten
- 10. MATLAB finden erste Elemente in den Spalten der Matrix
- 11. Gleicher Text aber ungleich Null diff
- 12. Ändern der Elemente von zwei Matrix in einer Bedingung Matlab
- 13. jenkins2 branch-indexing: java.lang.IllegalArgumentException: byteString == null
- 14. Ändern einiger Elemente des Vektors in Matlab
- 15. Nur mit bestimmten Werten Matrixmultiplikation in MATLAB
- 16. Indexing eine MYSQL Tabelle mit vielen Spalten
- 17. Regulärer Ausdruck für einen Hexadezimalwert ungleich Null
- 18. Python Indexing
- 19. Auswählen von NULL-Spalten
- 20. Numpy: Array-Elemente an bestimmten Positionen ändern
- 21. Entfernen Sie Elemente von einer bestimmten Positionen
- 22. pthreads_create() gibt einen Wert ungleich null zurück?
- 23. Erstellen Sie eine zufällige Sparse-Matrix mit Spalten und Zeilen ungleich Null
- 24. Laravel Modell Abfrage mit nur bestimmten Spalten
- 25. Finden Sie die Anzahl der Elemente ungleich Null in einem Tensor entlang einer Aixs
- 26. Zurückgeben nur Elemente mit bestimmten Zeichen
- 27. C++ inkrementieren std :: atomic_int wenn ungleich Null
- 28. Sind Java-Systemeigenschaften immer ungleich null?
- 29. Ungleich Null nicht in SQL Server arbeiten
- 30. Delphi SetLength Individuelle Indexing
Danke, aber ich möchte nur die ersten 5 Spalten ändern und auch nicht die Null-Elemente aber die Nicht-Null-Einsen. –
Ich habe das zuerst verpasst, aber ich habe meine Antwort geändert. – m7913d
Ich fügte ein B (B> 0) = 10 hinzu; aber danke! –