我有一个这样的数组:
>> a = [2,34,5,6,7,0,1,10]
现在我想要反转这个数组的每个元素。
使用1 ./ a
,结果为:
ans =
0.5000 0.0294 0.2000 0.1667 0.1429 Inf 1.0000 0.1000
Inf
对我不好,答案应该是
ans =
0.5000 0.0294 0.2000 0.1667 0.1429 0 1.0000 0.1000
我想在非零的元素上应用它!
我该怎么做?
答案 0 :(得分:4)
你可以有条件地做到:
nz = a ~= 0; %// select using logical indexing
a(nz) = 1./a(nz);
答案 1 :(得分:4)
您之后还可以将Inf
值重置为零:
>> b=1./a
b =
0.5000 0.0294 0.2000 0.1667 0.1429 Inf 1.0000 0.1000
>> b(isinf(b)) = 0
b =
0.5000 0.0294 0.2000 0.1667 0.1429 0 1.0000 0.1000
答案 2 :(得分:1)