我一直想要遍历一个数组/矩阵(而不是为了练习/学习而使用关系运算符),如果满足一个简单条件,则将每个元素替换为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"作为逻辑类返回。我很困惑,如果我回来"真的"或"假"在我的循环中,为什么我的结果向量不会被显示为逻辑类,当使用" vec> 5",它显示为逻辑类?谢谢。
答案 0 :(得分:1)
您可以通过调用
来初始化逻辑数组vecempty = false(r,c);
而不是
vecempty = zeros(r,c);
当然,如果合适,false
可以替换为true
。