gpt4 book ai didi

arrays - 如何有效地从(非稀疏)矩阵中删除零?

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

我有一个矩阵:

x = [0 0 0 1 1 0 5 0 7 0];

我需要删除所有的零,像这样:

x = [1 1 5 7];

我使用的矩阵很大 (1x15000),我需要多次执行此操作 (5000+),所以效率是关键!

最佳答案

一种方式:

x(x == 0) = [];

关于时间的注意事项:

woodchips 所述, 与 KitsuneYMG 使用的方法相比,此方法似乎较慢.洛伦 (Loren) 在她的一篇 MathWorks blog posts 中也提到了这一点。 .由于您提到必须执行此操作数千次,您可能会注意到不同之处,在这种情况下,我会先尝试 x = x(x~=0);

警告:如果您使用的是非整数,请当心。例如,如果您有一个非常小的数字,您希望它足够接近零以便将其删除,则上述代码不会删除它。仅删除精确 零。以下内容将帮助您删除“足够接近”为零的数字:

tolerance = 0.0001;  % Choose a threshold for "close enough to zero"
x(abs(x) <= tolerance) = [];

关于arrays - 如何有效地从(非稀疏)矩阵中删除零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/738438/

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