在Matlab上划分数组的选定元素

时间:2011-09-28 22:38:08

标签: matlab elements divide

我有以下数组

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的数组。

谁能告诉我怎么办呢?在该陈述中添加'if whatever> 5'或什么? 提前致谢

1 个答案:

答案 0 :(得分:4)

使用逻辑索引既可以只划分符合条件的数字,又可以将结果分配给那些特定的索引。

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