Matlab 小技巧之矩阵下标以坐标形式选取
例如一个30行20列的数据矩阵Data = rand(30,20); 希望选择出以下第m行第n列的数据,或者对第m行第n列数据进行赋值处理:
可利用sub2ind函数进行对应处理
Example1
Data = rand(30,20);
m = [ 1 3 4 6 7 10 11 15 20 23 27 29];
n = [ 3 2 10 8 7 6 3 12 19 14 17 12];
Data(sub2ind(size(Data),m,n))
Example2
Data = zeros(30,20);
m = [ 1 3 4 6 7 10 11 15 20 23 27 29];
n = [ 3 2 10 8 7 6 3 12 19 14 17 12];
Data(sub2ind(size(Data),m,n)) = -1