gpt4 book ai didi

matlab - 如何减少这个特定代码块的处理时间?

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

我制定了一个算法,我必须在其中执行此操作近 100 次。我想减少这段代码的处理时间,有人可以帮我减少它的处理时间,或者建议我用一个有效的代码块代替这个吗?在我的笔记本电脑中,这个 block 是 takin 大约“耗时是 29.213608 秒”。当它被执行一次。如果我将这个耗时乘以 100,那么答案大约是 48.7 分钟,这是一个很大的处理时间。如果有人可以在这件事上帮助我,我将不胜感激;)实际上我想反转 a 的位,a 是 char 类型的,我无法通过应用 not 操作来反转位。然后我在某个地方了解到,matlab 中的非操作不适用于 char 类型,所以我首先将位从 char 转换为 double,然后应用非操作,然后将结果矩阵从 double 转换回 char 类型。我的主要目的是反转 char 类型的位。如果有人可以用另一种方式做到这一点,那么请帮助我。这件事占用了大量的处理时间:(

tic;
a(1:1000000,1)='0';

c=str2num(a);

c=~c;

d=num2str(c);

toc;

最佳答案

你可以这样做:

b = repmat('0',size(a));
b(a=='0') = '1';

或者:

ind = a=='0';
a(ind) = '1';
a(~ind) = '0';

关于matlab - 如何减少这个特定代码块的处理时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25854489/

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