【发布时间】:2015-03-31 02:39:09
【问题描述】:
我一直想遍历一个数组/矩阵(而不是为了练习/学习而使用关系运算符),如果满足一个简单的条件,将每个元素替换为 true 或false 值,并以逻辑类的结果数组结束。
vec = [5 9 3 4 6 11];
[r,c] = size(vec);
vecempty = zeros(r,c);
for i = 1:r;
for j = 1:c
if vec(i,j) > 5;
vecempty(i,j) = true;
else
vecempty(i,j) = false;
end
end
end
fprintf('Your truth matrix: \n\n\n')
disp(vecempty)
total = 0;
for i = 1:r;
for j = 1:c;
total = total + vecempty(i,j);
end
end
fprintf('Total number of truth elements: %d \n\n\n', total)
对于我的“vec(i,j)”条件,我最初将它们设置为“= 1”或“= 0”,但我猜这只是提供数字本身,而不是真假。因此,我选择了“=true”或“=false”,但我想知道,为什么我返回的数组(vecempty)没有显示为逻辑类?
遵循相同的价值观:
Vectruth = vec > 5
结果“Vectruth”作为逻辑类返回。我很困惑如果我在循环中返回“true”或“false”,为什么我的结果向量不会显示为逻辑类,当“vec > 5”时,它显示为逻辑类?谢谢。
【问题讨论】:
标签: matlab for-loop conditional-statements