Ich versuche, alle ABER bestimmten Indexpaare in einem mehrdimensionalen Array auszuwählen. h. ich habe einen Satz von gepaarten Indizes (z.B. [1,2] und [4,5]). Ich möchte alle, aber diese indexiert Paare auf 0Alle ABER bestimmten Indexpaare im mehrdimensionalen Array auswählen Matlab
einstellen Der nächstgelegene ich dazu gekommen ist:
A(setdiff(1:length(A(:,1)),lon),setdiff(1:length(A(1,:)),lat)) = 0;
, wobei A die Matrix und lon und lat sind die Indexpaare Ich möchte halten . Dies lässt jedoch auch alle sich überschneidenden Zeilen und Spalten dieser Paare übrig.
Irgendwelche Ideen? Hier
ist einige Beispiel-Code:
A = ones([5,5])
A =
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
lon = [1];
lat = [4];
A(setdiff(1:length(A(:,1)),lon),setdiff(1:length(A(1,:)),lat)) = 0
A =
1 1 1 1 1
0 0 0 1 0
0 0 0 1 0
0 0 0 1 0
0 0 0 1 0
Was ich will, ist:
A =
0 0 0 1 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
Können Sie ein kurzes Stück von Beispieldaten zur Verfügung stellen? – Suever
Ist das letzte Stück was du willst * oder was du gerade bekommst? – Suever
Sorry, nein Ich will nur das eine Indexpaar, nicht die ganzen sich überschneidenden Zeilen und Spalten. Auch wenn Sie meine Frage bereits beantwortet haben, werde ich sie aktualisieren, um klarer zu sein. –