【发布时间】:2017-10-24 15:09:49
【问题描述】:
所以我有这个矩阵
A=
7
B=
0.34 0.34 0.34
0.50 0.25 0.25
还有这个矩阵
C=
1
1
4
2
3
6
3
使用这条规则:
- 如果 C=1 那么输出 = sum(A*(B first row) )
- 如果 C=2 则输出 = sum(A*(B 2nd row) )
- 如果 C 不是 1 或 2,则输出 = C 值
或一般来说:
- 如果 B 中存在第 C 行,则输出 = sum(A*(B 的第 C 行))
- 否则输出 = C 值
所以输出应该是这样的:
output=
7.14
7.14
4
7
3
6
3
我正在尝试使用此代码,但它不起作用
sizeA=size(A,1)
sizeB=size(B,1)
for i=1:sizeB
if (B(i)<=sizeA)
Output=sum(repmat(A,1,length(C))'.*B(C,:),2)
else
Output=C(i)
end
end
【问题讨论】:
-
您的条件是否取决于
B中的行数?如果存在第三行,是否应该使用它?如果是这种情况,请在您的问题中提及。很好地提出问题通常是找到解决方案的一大步。 -
是的,它取决于B中的行,所以如果B上有第3行,它也应该被计算
标签: matlab if-statement matrix