Bonjour,
.
Je suis sous Matlab R_2014b.
J'ai deux ensembles de valeurs : a [10;20;10] et b [30;30]
Je cherche à associer ces deux vecteurs pour obtenir c=[10;30;20;30;10].
J'ai essayé en vecteurs mais vu ce que j'attends ce n'est pas logique (en plus de pas marcher), j'ai essayé en matrice associé à une boucle for mais cela ne fonctionne pas.
.
.
Il se trouve que dans mon programme, le nombres de valeurs dans a et b ne seront pas toujours de 3 et 2.
C'est pourquoi je cherche à faire une association qui prenne en compte ce détail.
.
.
Précisément je cherche à obtenir le résultat suivant : Pour a de 1 à x
Pour b de 1 à y
Je veux c = [a(1);b(1);a(2);b(2);....;a(x);b(x)]
.
Sachant que j'aurais toujours x = y+1
% Initialisation des indices pour récuperer les valeurs des vecteurs A et B
indice_a =1;
indice_b =1;
% Creation du vecteur qui contiendras les valeurs fusionnés
resultat_fusion = zeros(size(A,1)+size(B,1))
% Attention avec le size, c'est peut etre un 2 a la place du 1, ça dépend si tu as déclarer tes vecteurs en ligne ou en colonne...
% Fusion des vecteurs
for i = 1:(size(A,1)+size(B,1))
if (indice_b > indice_a)
resultat_fusion(i) = B(indice_b);
indice_b = indice_b + 1;
else
resultat_fusion(i) = A(indice_a);
indice_a = indice_a + 1;
end
end
Apres je n'ai pas Matlab sous la main pour tester mais l'algo me plait.
tiens moi au courant si cela marche ou si tu as des questions.
Merci pour votre solution. Je n'ai pas eu l'occasion de la tester, j'ai fini par trouver une solution. Certes pas élégante, mais fonctionnelle :
k=1;
for i = 1:ndemarrage -1
trajet(k) = tdemarrage(i);
k = k +1;
trajet(k) = tpause(i);
k = k +1;
end
trajet(k) = tdemarrage(ndemarrage);
Je vais quand même essayé votre solution car elle ressemble à ce que j'avais en tête initialement.
Merci beaucoup
Cordialement.