Jestem ciekawy, jaki jest najlepszy sposób na zrobienie tego: Załóżmy, że mam matrycę zerową 10x10 i chcę zastąpić zera tymi znanymi współrzędnymi, w na początek jestem rzeczą o napisaniu pętli for, aby zastąpić elementy jeden po drugim, odczytując x i y. Czy istnieje inny łatwy sposób na zrobienie tego?Zastępowanie elementów w macierzy zgodnie ze współrzędnymi w Matlab
Przykład:
mat=zeros(10);
x=[1,3,5,7,9]';
y=[2,4,6,8,10]';
newmat= [0 0 0 0 0 0 0 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 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 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 1 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0]
zdałem sobie sprawę, że jest to duplikat [niedawnym pytaniem] (http://stackoverflow.com/questions/5886039/matlab-addressing-of-one-index-without-sub2ind/5889492#5889492), na którą odpowiedziałem. Jednak nie winię cię za to, że nie mogłeś go znaleźć, ponieważ tytuł drugiego pytania nie pomógłby ci w poszukiwaniach. – abcd
@Yoda: Myślę, że mój post jest nieco zagmatwany, nie miałem zamiaru mieć przypisanego kształtu oka, ale po prostu podstawię elementy według losowych x i y. Ale dzięki za pomoc :) – tytamu
Yen: Nie ma problemu. Rozwiązanie @ eat jest bardziej ogólne i gdyby Twój przykład był inny, dokładnie to zasugerowałbym. – abcd