Making a list from two arrays

9 Ansichten (letzte 30 Tage)
Julien
Julien am 12 Aug. 2014
Kommentiert: Julien am 12 Aug. 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

Akzeptierte Antwort

Azzi Abdelmalek
Azzi Abdelmalek am 12 Aug. 2014
Bearbeitet: Azzi Abdelmalek am 12 Aug. 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 Kommentar
Julien
Julien am 12 Aug. 2014
Thanks, this works exactly as I wanted it to.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Evan
Evan am 12 Aug. 2014
Bearbeitet: Evan am 12 Aug. 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)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by