把逻辑矩阵转化为字符串向量
45视图(30天)
显示旧的评论
嗨。我有逻辑矩阵
idx
和字符串数组
vec
。
idx =逻辑([0 1 0;0 0 1;1 0 0;1 0 0;0 1 0))
vec = [“一个”,“B”,“C”]
每一行的
idx
表明哪个字母(从
vec
)应该分配给这一行。
期望的结果是:
结果= [“B”;“C”;“一个”;“一个”;“B”]
有一种‘应用’矩阵
idx
一系列矩阵,或者类似如下:
temp = repmat(矢量,[大小(idx, 1), 1])
临时(idx)%这回报但并不像预期的那样
0评论
接受的答案
更多的答案(3)
Yvan Lengwiler
2021年5月9日
(我写的回答如上评论。对不起。这是作为一个正式的答案。)
当然,即使一个解决方案并没有使用一个循环的Matlab程序代码,将会有一个循环的ultimapte机器代码。没有代码的Matlab程序可以提高文本的易读性对于人类来说,但它并不明显改善execusion的速度。
无论如何,这是一个解决方案:
idx =逻辑([0 1 0;0 0 1;1 0 0;1 0 0;0 1 0]);
vec = [“一个”,“B”,“C”];
tempvec = repmat vec”,[大小(idx”(2), 1]);
tempidx = idx ';tempidx = tempidx (:);
结果= tempvec (tempidx) '