【发布时间】:2011-12-15 04:03:55
【问题描述】:
FD是一个excel文件,A是FD第5列的数据。(第5列的每个单元格包括1、2或3)
如果FD中第5列的单元格包含2或3,那么... 否则,如果 FD 中第 5 列中的单元格包括 1 或 3,则 .. ... 否则,如果第 5 列中的所有单元格仅包含 1,则 .. ...
A = FD (:,5); C = 3x3 矩阵
If A == 2 || A == 3
Avg = sum(diag(C)./sum(C+eps,2))/2;
elseif A == 1 || A == 3
Avg = sum(diag(C)./sum(C+eps,2))/2;
elseif A == 1 || A == 2
Avg = sum(diag(C)./sum(C+eps,2))/2;
elseif A == 1
Avg = C(1,1)/sum(sum(C));
elseif A == 2
Avg = C(2,2)/sum(sum(C));
elseif A == 3
Avg = C(3,3)/sum(sum(C));
else
Avg = sum(diag(C)./sum(C,2))/3;
end
但是,上面的代码有错误。 ??? || 的操作数和 && 运算符必须可转换为逻辑标量值。
有人可以帮忙吗?
【问题讨论】:
-
你得到什么错误?
A=FD(:,5)是什么意思? (什么是 FD?A 是单个数字还是向量?)此外,看起来最后 4 个elseif语句永远不会到达,因为它们被前两个覆盖(如果A是 1,2,或 3 则至少满足以下条件之一:if A==2||A==3和elseif A==1||A==3,这意味着您的elseif A==1、elseif A==2、elseif A==3将永远无法到达... -
@mathematical.coffee,刚刚编辑了问题。是的,elseif A==1...无法到达..so..我要如何修改它?
-
学习使用
all()和any()。
标签: matlab