如何根据值创建索引列表,并从中创建新数组?MATLAB



我想消除数据集中第三行包含零值的所有列。

例如:

original_data = [1 2 3 4 5; 1 2 3 4 5; 0 0 0 1 2] 

对于前三列(第三行为零(,我想创建一个新的数组,删除第三行中为零的列以获得结果:

new_data = [ 4 5;  4 5; 1 2] 

我还想要一个原始数组中非零值的列索引数组。

例如:

original_indices = [4, 5]

我试过了:

dados_teste = dados_out_15;
dados_p6 = [];
[m,n] = size(dados_teste)
for i = 1:n

if dados_teste(3:i) == 0;
dados_p6 = dados_teste(:,i)
else
dados_p6 = dados_teste(:,n)
end
end

但它显然不起作用。。。

我会应用find((函数来查找所有非零索引,然后应用矩阵索引来生成一个新数组,该数组只包含第三行中非零索引对应的列。

Sample_Array = [20 30 40 50; 30 20 70 90; 0 2 1 2];
%Grabbing the third row of the matrix%
Third_Row = Sample_Array(3,:);
%Finding all the non-zero indices%
[Non_Zero_Indices] = find(Third_Row);
%Using matrix indices to generate a new array based on the non-zero
%indicies%
New_Matrix = Sample_Array(:,Non_Zero_Indices);
%Printing matrices% 
Sample_Array
New_Matrix
Non_Zero_Indices

相关内容

  • 没有找到相关文章