gpt4 book ai didi

matlab - 在 Matlab 中更有效地遍历矩阵元素

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

我正在编写一些 matlab 代码并编写了一个有效的算法,但我认为它不是特别有效。由于我正在努力提高我的编程技能,所以我想知道是否有更有效的方法。

我有一个(相当大的 ~ E07)矩阵,其值是无序的,但在 [-100, 100] 范围内。我想根据第一个矩阵创建第二个矩阵,方法是使用以下规则:

  1. 如果点的值>70,那么点的值应该设置为70。
  2. 如果点的值<-70,那么点的值应该设置为-70。
  3. 所有其他值应四舍五入为最接近的 5 的倍数。

这是我目前正在做的事情:

data = 100*(-1+2*rand(1,10000000)); % create random dataset for stackoverflow
new_data = zeros(1,length(data));

for i = 1:length(data)
if (data(i) > 70)
new_data(i) = 70;
elseif (data(i) < -70)
new_data(i) = -70;
else
new_data(i) = round(data(i)/5.0)*5.0;
end
end

有没有更有效的方法?我认为应该有一种方法可以使用逻辑索引来做到这一点,但这对我来说是一个新发现......

最佳答案

你根本不需要循环:

data = 100*(-1+2*rand(1,10000000)); % create random dataset for stackoverflow
new_data = zeros(1,length(data)); % note that this memory allocation is not necessary at this point

new_data = round(data/5.0)*5.0;
new_data(data>70) = 70;
new_data(data<-70) = -70;

关于matlab - 在 Matlab 中更有效地遍历矩阵元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12840752/

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