【问题标题】:Dividing selected elements of array on Matlab在Matlab上划分数组的选定元素
【发布时间】:2011-09-28 22:38:07
【问题描述】:

我有以下数组

a = [ 1 10 3 4 68 2 34 8 10 ]

如果这个数字大于 9,我需要将每个数字 (/2) 相除。 意思是1不用除,10要除(/2)

结果数组应该是:

a = [ 1 5 3 4 34 2 17 8 5 ]

我必须在不使用 FOR 函数的情况下这样做。所以我尝试了这个:

a = a./2;

这将数组的每个数字相除,我之前告诉过你,我只想划分大于 9 的数字。

谁能告诉我该怎么做?在该语句或其他内容中添加“ifwhatever>5”?
提前致谢

【问题讨论】:

    标签: matlab elements divide


    【解决方案1】:

    使用逻辑索引来仅划分符合标准的数字并将结果分配给这些特定索引。

    a = [ 1 10 3 4 68 2 34 8 10 ];
    a(a>9) = a(a>9) ./ 2
    

    【讨论】:

    • +1 我会将a>9 的结果存储在向量中,例如idx,并使用它而不是进行两次测试
    猜你喜欢
    • 2017-10-09
    • 2021-11-06
    • 1970-01-01
    • 2012-10-13
    • 2016-04-23
    • 1970-01-01
    • 2021-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多