Для этого вида манипуляций используйте sub2ind , например
> mat=zeros(10); x=[1,3,5,7,9]'; y=[2,4,6,8,10]';
> mat(sub2ind([10 10], y, x))= 1
mat =
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
Обновление: Чтобы сопоставить это с невинно выглядящим ассигмнетом mat(y, x)= 1
.
> mat= zeros(10);
> mat(y, x)= 1
mat =
0 0 0 0 0 0 0 0 0 0
1 0 1 0 1 0 1 0 1 0
0 0 0 0 0 0 0 0 0 0
1 0 1 0 1 0 1 0 1 0
0 0 0 0 0 0 0 0 0 0
1 0 1 0 1 0 1 0 1 0
0 0 0 0 0 0 0 0 0 0
1 0 1 0 1 0 1 0 1 0
0 0 0 0 0 0 0 0 0 0
1 0 1 0 1 0 1 0 1 0