我有两个包含数字的文件。我使用一个数字来计算骨骼的最大压缩数,而另一个数字是骨骼上的压缩数。如果第二个数字高于最大压缩数,我想用红色绘制点,如果它小于那么它应该是绿色。
我的问题是我的所有圆点都是红色的,尽管大多数应该是绿色的。我试图通过打印出H和C矢量来调试它,并且有100个数字应该是红色而其余的是绿色。任何帮助或提示都表示赞赏。
这是我的代码
p=VarName5;
c=VarName7*2.5; %%The compression that is on the bone
if p<0.317;
H=10500*p.^1.88; %%Calculate max compression the bone handles
else
H=114*p.^1.72; %%Calculate max compression the bone handles
end
if(c < H) %% if the compression on the bone is smaller then max compression
plot(p,c,'+G') %% plot using green+
hold on
else
plot(p,c,'+R') %if the compression is higher than max compression use red+
end
hold off
答案 0 :(得分:2)
您可以创建一个逻辑向量,其中所有大于最大值的元素都是1,而所有其他元素都是0:
ind = c > H;
plot(p(ind),c(ind),'+R')
hold on
plot(p(~ind),c(~ind),'+G')
然后您可以单独绘制它们。
用一些随机数据来说明:
c = repmat([1:6 7:-1:1],1,2); %// The compression
H = rand(1,numel(c))*8; %// The compression the bone handles (in this case: random)
p = 1:numel(c);
ind = c > H; %// Index of elements where the bone is compressed more than it handles.
plot(p(ind),c(ind),'+R')
hold on
plot(p(~ind),c(~ind),'+G')
我会让您知道如何在代码中实现它。