【发布时间】:2014-09-08 09:11:56
【问题描述】:
A 是一个矩阵40 x 10000。 V1、V2 和 V3 是 3 个具有相同维度的向量 1 x 50。
我想找到3个向量W1、W2和W3,具有相同的维度1 X p(p:最大可能的p
- W1(i)、W2(i) 和 W3(i) 属于 A(i,:)
- Wk的所有元素都属于Vk,k=1,2,3
Wk 不是已知向量!但 Vk 是预定义的。
所以目标是找到包含 Wk 的 A 的行索引,其中 size(Wk) 尽可能大。
示例:(我在矩阵中使用了一些字符以使示例更清晰)
95 45 92 41 13 1 84
a 1 e 89 h 74 52
A= 60 82 17 5 19 44 20
48 44 40 35 67 93 67
b 61 f 81 m 46 83
c 79 g 20 n 41 1
V1 = [51 a 23 11 b 5 c]
V2 = [e g 93 14 22 f 10]
V3 = [81 n 87 h 45 77 m]
对于这个例子p=3(最大可能值)所以:
W1 =[a b c]
W2 =[e f g]
W3 =[h m n]
想要的结果:A(2,:), A(5,:) 和 A(6,:)。
另一个例子:
如果:
95 45 92 41 13 1 84
a 1 e 89 h 74 52
A= 60 82 17 5 19 44 20
b 44 40 35 67 93 67
48 61 f 81 m 46 83
c 79 g 20 n 41 1
V1 = [51 a 23 11 b 5 c]
V2 = [e g 93 14 22 f 10]
V3 = [81 n 87 h 45 77 m]
对于这个例子p=2(最大可能值);因为48不属于V1,40和67分别不属于V2和V3,所以:
W1 =[a c]
W2 =[e g]
W3 =[h n]
想要的结果:A(2,:) 和 A(6,:)。
另一个例子:
如果:(如果 A 中的 b 是右侧一列)
95 45 92 41 13 1 84
a 1 e 89 h 74 52
A= 60 82 17 5 19 44 20
77 b 40 35 67 93 67
48 61 f 81 m 46 83
c 79 g 20 n 41 1
V1 = [51 a 23 11 b 5 c]
V2 = [e g 93 14 22 f 10]
V3 = [81 n 87 h 45 77 m]
对于这个例子p=2(最大可能值),所以:
W1 =[a c]
W2 =[e g]
W3 =[h n]
想要的结果:A(2,:) 和 A(6,:)。
另一个例子:
如果:(如果 A 中的 c 是右侧一列)
95 45 92 41 13 1 84
a 1 e 89 h 74 52
A= 60 82 17 5 19 44 20
b 44 40 35 67 93 67
48 61 f 81 m 46 83
88 c g 20 n 41 1
V1 = [51 a 23 11 b 5 c]
V2 = [e g 93 14 22 f 10]
V3 = [81 n 87 h 45 77 m]
对于这个例子p=1(最大可能值);所以:
W1 =[a]
W2 =[e]
W3 =[h]
想要的结果:A(2,:)。
【问题讨论】:
-
可以有重复吗,比如
W1 =[a b c a]等? -
@Divakar:不,p 不是预定义的。
-
我们可以将向量(3)的数量设为固定吗?还是应该是一个可变参数(更难)?
-
@Divakar:目标不是找到 Wk,而是找到矩阵 A、A(i,:) 的行,其中包含 k=1,2,3 的所有 Wk(j) 和对于给定的 j 值。 Wk 只是了解我们想要什么的中间步骤。
-
每个 W 的所有匹配项都必须在同一列中吗?如果
A中的b是右侧一列怎么办?