Making a list from two arrays

4 vues (au cours des 30 derniers jours)
Julien
Julien le 12 Août 2014
Commenté : Julien le 12 Août 2014
I'm relatively new to coding, and have no clue how I would pull the following off.
Say I have two vectors: A = [a b c d] and B = [1 2 3 4].
I would like to make a function that takes these two as inputs and outputs exactly the following into a .txt file, curly brackets included:
{a->1,b->2,c->3,d->4}
I was thinking some kind of for loop, but I have no experience using them and no idea how I would set this up.
Thanks

Réponse acceptée

Azzi Abdelmalek
Azzi Abdelmalek le 12 Août 2014
Modifié(e) : Azzi Abdelmalek le 12 Août 2014
A = {'a' 'b' 'c' 'd'}
B = [1 2 3 4]
out='{'
for k=1:numel(B)
out=[out sprintf('%s->%d,',A{k},B(k))]
end
out(end)='}'
%or
A = {'a' 'b' 'c' 'd'}
B = [1 2 3 4]
out=['{' strjoin(cellfun(@(x,y) sprintf('%s->%d',x,y),A,num2cell(B),'un',0),',') '}']
  1 commentaire
Julien
Julien le 12 Août 2014
Thanks, this works exactly as I wanted it to.

Connectez-vous pour commenter.

Plus de réponses (1)

Evan
Evan le 12 Août 2014
Modifié(e) : Evan le 12 Août 2014
How about this?
A = 'abcd';
B = [1 2 3 4];
fid = fopen('my_txt_file','w');
s = [];
for i = 1:numel(A)
s = [s sprintf('%s->%d,',A(i),B(i))];
end
s = ['{' s(1:end-1) '}'];
fprintf(fid,s);
fclose(fid)

Catégories

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

Community Treasure Hunt

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

Start Hunting!

Translated by