【问题标题】:copying matrix values based on another matrix value in MATLAB基于MATLAB中的另一个矩阵值复制矩阵值
【发布时间】:2016-08-05 17:29:55
【问题描述】:

您好,我正在尝试在 MATLAB 上执行此操作

A =

64     2     3    61    60     6     7    57
 9    55    54    12    13    51    50    16
17    47    46    20    21    43    42    24
40    26    27    37    36    30    31    33
32    34    35    29    28    38    39    25
41    23    22    44    45    19    18    48
49    15    14    52    53    11    10    56
 8    58    59     5     4    62    63     1

我想根据 F 从 A 中选择值

F =

 0     0     0     0     0     0     0     0
 0     0     0     0     0     0     0     0
 0     0     0     0     0     0     0     0
-1    -1    -1    -1    -1    -1    -1    -1
 0     0     0     0     0     0     0     0
-1    -1    -1    -1    -1    -1    -1    -1
-1    -1    -1    -1    -1    -1    -1    -1
-1    -1    -1    -1    -1    -1    -1    -1

我想要这个输出

你=

40    26    27    37    36    30    31    33
41    23    22    44    45    19    18    48
49    15    14    52    53    11    10    56
 8    58    59     5     4    62    63     1

这意味着我想要矩阵中与“-1”对应的所有值。我试过 u=A(F==-1) ... 但它给了我一个包含所有值的单列:

你=

40
41
49
 8
26
23
15
58
27
22
14
59
37
44
52
 5
36
45
53
 4
30
19
11
62
31
18
10
63
33
48
56
 1

【问题讨论】:

    标签: arrays matlab matrix indexing


    【解决方案1】:

    这样就可以了:-

    u=-A.*F;               
    u(all(u==0,2),:)=[]    %Removing rows containing zeros
    

    另一种解决方案:-

    u=reshape(A(F==-1),4,8) 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-11
      • 1970-01-01
      • 2013-11-18
      • 1970-01-01
      • 1970-01-01
      • 2013-01-20
      • 1970-01-01
      相关资源
      最近更新 更多