gpt4 book ai didi

matlab - 在 MATLAB 中删除任何具有相同值的列

转载 作者:太空宇宙 更新时间:2023-11-03 20:01:04 24 4
gpt4 key购买 nike

我需要删除矩阵中具有相同值的任何列。我在 MATLAB 中使用 for 循环设计了它。我想知道是否存在使用矢量化的更好/更快的方法。

mat = [ 0.56  0.2 1 0 45; 0.566 0.2 4 0 45; 0.52  0.2 6 0 45; 0.56  0.2 6 0 41 ];  
[row col] = size(mat) ;

bitmat = true(1,col) ;
for i = 2:row, tf = (mat(i-1,:) == mat(i,:)) ; bitmat = bitmat & tf ; end
mat(:,bitmat) = [] ;

谢谢!

最佳答案

这是一个使用函数 DIFF 的简单单行代码和 ANY :

mat = mat(:,any(diff(mat,1)));

关于matlab - 在 MATLAB 中删除任何具有相同值的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6457844/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com