基于元素向量产生平等矩阵。

1视图(30天)
给定两个同样大小的向量A和B,有什么方法可以使一个矩阵C的1和0的k行C包含1的任何元素B等于的k元素?
我可以通过遍历的元素,但我想知道如果有一个vectorised加速的方法吗?
2的评论
Guillaume
Guillaume 2020年3月27日
“我可以用repmat”
你不需要 repmat 。隐式的扩张将照顾为你重复的元素,并将更快。看到我的答案。

登录置评。

接受的答案

Guillaume
Guillaume 2020年3月27日
平凡地做。
%如果A和B都是行向量:
C =。' = = B;
如果他们两个列向量,转置 B 代替。
1评论
亚历山大•福尔摩斯
亚历山大•福尔摩斯 2020年3月27日
啊是的,它完全。这是一个更好的方法。
谢谢你!

登录置评。

更多的答案(3)

Fangjun江
Fangjun江 2020年3月27日
像这样的吗?
一个=兰迪(10、5、1);
B =兰迪(10、5、1);
k = 3;
C = (B = = (k))

贝恩德•瓦格纳
贝恩德•瓦格纳 2020年3月27日
的逻辑opperator C = = = B不工作吗?
比较值向量和响应一个逻辑值1如果值也在同一行在B .因此C向量将是一个向量的0和1 1 = = B。
1评论
亚历山大•福尔摩斯
亚历山大•福尔摩斯 2020年3月27日
这并不是我想要的。我wantred比较整个向量来另一个向量的每个元素,这将给我最后一个矩阵,而不是一个向量。但是用户上面给了我我需要什么。
不过谢谢你!

登录置评。


darova
darova 2020年3月27日
试一试 bsxfun
使用bsxfun %让所有组合
C = bsxfun (@minus b (:), (:)”);% b -行,a -列
(i, j) =找到(~ C);%找到“零”
C1 = C * 0;
C1(我:)= 1;% ' 1 '如果任何元素使整个行= = b

类别

找到更多的在创建和连接矩阵帮助中心文件交换

标签

下载188bet金宝搏


释放

R2017b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!