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

2 vues (au cours des 30 derniers jours)
Malte T le 25 Oct 2022
Commenté : KALYAN ACHARJYA le 25 Oct 2022
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?
Best regards,
Malte
##### 0 commentairesAfficher -2 commentaires plus anciensMasquer -2 commentaires plus anciens

Connectez-vous pour commenter.

### Réponse acceptée

KALYAN ACHARJYA le 25 Oct 2022
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 commentairesAfficher AucuneMasquer Aucune
Malte T le 25 Oct 2022
Thanks a lot.
KALYAN ACHARJYA le 25 Oct 2022
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.

Connectez-vous pour commenter.

### Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

R2022b

### Community Treasure Hunt

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

Start Hunting!

Translated by