【Matlab提取离散元素】矩阵取出多个离散元素

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiaoxiao133/article/details/83380040

由于Matlab是按照列优先存储数据,矩阵实际也是一维数组:
对于零矩阵C[5*11]是5行11列. 使[1;2;3;4;5]行的 [3;4;6;8;9]列,五个元素为1如下代码:
基本思想:每列5个元素对应的列select_minQ-1乘以5,计算每列最后一个元素的坐标位置;
#由于matlab没有index=0;
select_minQ-1表示最后一个元素位置,加上[1;2;3;4;5],表示下一行的位置。

select_minQ = [3;4;6;8;9];
select_C = zeros(5,11);
select_index = ([1;2;3;4;5]) + (select_minQ-1)*5;
select_C(select_index) = 1;

select_C = zeros(5,11):
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0

select_C(select_index) = 1 :
0 0 1 0 0 0 0 0 0 0 0
0 0 0 1 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 1 0 0 0
0 0 0 0 0 0 0 0 1 0 0

猜你喜欢

转载自blog.csdn.net/xiaoxiao133/article/details/83380040