将函数应用于八度中的每个单元格

时间:2019-07-14 20:03:24

标签: matrix octave

我有一个矩阵:

>> A = rand(5,2)
ans =

   0.843985   0.911387
   0.330442   0.589956
   0.828405   0.220234
   0.049927   0.632131
   0.975574   0.254384

我想输出一个相同大小的新矩阵(或替换上面矩阵中的项目),其中每个项目的计算方式如下:

  • 如果项目(x,y)大于(所属列的最大值* 0.50),则使用项目值
  • 否则item = 0

因此在上面的示例中,

  • max(A)= [0.975574 0.911387]
  • max(A)* 0.50 = [0.488779 0.45569]

输出应为

   0.843985   0.911387
   0          0.589956
   0.828405   0
   0          0.632131
   0.975574   0

如何在不显式遍历各列的情况下应用此功能?

1 个答案:

答案 0 :(得分:1)

>> A = rand(5,2)
A =
    0.8147    0.0975
    0.9058    0.2785
    0.1270    0.5469
    0.9134    0.9575
    0.6324    0.9649
>> B = A.*(A>0.5*max(A))
B =
    0.8147         0
    0.9058         0
         0    0.5469
    0.9134    0.9575
    0.6324    0.9649