MATLAB:从选定的矩阵元素

时间:2016-09-23 18:43:30

标签: matlab

我有一个3x3x3矩阵,其中包含我想要提取的一组特定元素。但是,我希望在选择元素后,可以在矩阵中对元素进行排序。一个例子是:

a(1,:,:)=1*[1 2 3; 4 5 6; 7 8 9];
a(2,:,:)=2*[1 2 3; 4 5 6; 7 8 9];
a(3,:,:)=3*[1 2 3; 4 5 6; 7 8 9];

a(a>1.0)

条件a(a>1.0)给了我一个元素向量,但有没有办法按照原始顺序在矩阵中对它们进行排序?

2 个答案:

答案 0 :(得分:0)

您希望对不符合条件的元素做些什么?

您可以执行a(a<=1) = nan;

之类的操作

答案 1 :(得分:0)

为简单起见,假设二维矩阵:

a = [1 2 3; ...
     4 5 6];

我们只选择偶数值并将其保留为原始形状:

a(mod(a, 2) == 0)

你可能想要:

  2
4   6

然而,在矩阵世界中,是否存在空间的矩阵?是的,稀疏矩阵。但是,你必须注意,稀疏矩阵用 0 填充,而不仅仅是缺失。

所以,我的建议是用NaN

替换其他值
b = a; % just make a duplicate
b(mod(b, 2) == 1) = nan
b =
    nan    2    nan
      4  nan      6