Merge two arrays w/o for-loop. Speed-up

1 次查看(过去 30 天)
Hello Community,
I'm looking for a solution to speed up my script. I have two arrays with the same length. Both arrays must be merged.
B1 = [52, 52, 52, 52, …]
B2 = [0.437288188, 0.437288188, 0.437288188, 0.437288188, ...]
Right now I'm connecting both signals with a for loop, because I need to remove the "0." from array B2:
for k = 1:length(B1)
C(k) = str2num([num2str(B1(k)),'.',strrep(num2str(B2(k),'%.20f'),'0.','')])
end
I want that:
C = [52.437288188, 52.437288188, 52.437288188, 52.437288188, … ]
My solution is very slow. Is there a way to do this element by element without a for-loop?
Thanks in advance.
Best regards,
Malte

采纳的回答

KALYAN ACHARJYA
KALYAN ACHARJYA 2022-10-25
B1 = [52, 52, 52, 52]
B1 = 1×4
52 52 52 52
B2 = [0.437288188, 0.437288188, 0.437288188, 0.437288188]
B2 = 1×4
0.4373 0.4373 0.4373 0.4373
C=B1+B2
C = 1×4
52.4373 52.4373 52.4373 52.4373
  2 个评论
KALYAN ACHARJYA
KALYAN ACHARJYA 2022-10-25
In my system with Precision set
B1 = [52, 52, 52, 52]
B2 = [0.437288188, 0.437288188, 0.437288188, 0.437288188]
C=B1+B2
#
B1 =
52 52 52 52
B2 =
0.437288188000000 0.437288188000000 0.437288188000000 0.437288188000000
C =
52.437288187999997 52.437288187999997 52.437288187999997 52.437288187999997
If the objective is only to merge two arrays, then the answer will be different.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Parallel for-Loops (parfor) 的更多信息

标签

产品


版本

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by