从矩阵列中删除副本1s

1视图(最近30天)
米切尔·克莱姆(Mitchell Crem)
评论: 图像分析师 2021年1月25日
假设我有以下逻辑矩阵,
QQ =
3×5逻辑大批
1 0 1 1 1
1 1 0 1 1
1 0 0 0 1
我试图编写几行,这使我可以通过设置额外的1秒至0设置每列只拥有一个1。输出看起来应该如下。
QQ =
3×5逻辑大批
1 0 1 1 1
0 1 0 0 0
0 0 0 0 0
:)

答案(1)

图像分析师
图像分析师 2021年1月25日
米切尔,请尝试以下操作:
qq =逻辑([...
1 0 1 1 1
1 1 0 1 1
1 0 0 0 1]))
[行,列] = size(qq);
为了col = 1:列
dibesOne = find(qq(:,, col),1,'第一的');
如果〜iSempty(最高)
QQ(最高 + 1:end,col)= false;
结尾
结尾
QQ%在命令窗口中显示。
你看:
QQ =
3×5逻辑阵列
1 0 1 1 1
1 1 0 1 1
1 0 0 0 1
QQ =
3×5逻辑阵列
1 0 1 1 1
0 1 0 0 0
0 0 0 0 0
2条评论
图像分析师
图像分析师 2021年1月25日
我给了你。说qq(:,, col)意味着从矩阵中获取列矢量。

登录发表评论。

社区寻宝

在Matlab Central中找到宝藏,发现社区如何为您提供帮助!

开始狩猎!