【发布时间】:2015-02-19 09:38:29
【问题描述】:
我在 MATLAB 中使用 dec2hex 多达 100 次。因此,代码的速度会降低。一方面,我使用了dec2hex 100 次。这将需要 1 分钟或更长时间。我已经为 5000 分做了同样的事情。但是由于dec2hex,它需要几个小时才能运行。那么如何才能最佳地进行十六进制到十进制的转换呢?有没有其他替代品可以代替dec2hex?
例如:
%%Data[1..256]: can be any data from
for i=1:1:256
Table=dec2hex(Data);
%%Some permutation applied on Data
end;
我在这里使用dec2hex 超过100 次以获得一点。而且我必须使用它来获得5000分。
数据 =
Columns 1 through 16
105 232 98 250 234 216 98 199 172 226 250 215 188 11 52 174
Columns 17 through 32
111 181 71 254 133 171 94 91 194 136 249 168 177 202 109 187
Columns 33 through 48
232 249 191 60 230 67 183 122 164 163 91 24 145 124 200 142
我的代码将使用这种数据。
【问题讨论】:
-
您要转换的数字有多大?您的 MATLAB 版本是多少?
-
您是否尝试过使用向量一次性传递要转换的值?
dec2hex(1:100000)很快! -
在我的机器上将 500,000 个数字转换为十六进制(并行)确实需要
0.22秒,因此这不太可能是您的计算需要数小时的原因。 -
@SNC:那么请告诉我们您的数据是什么!我们怎么知道?
-
你确定问题是
dec2hex...我问是因为在示例中Data不是preallocated。我认为这是原因