Making a list from two arrays

6 ビュー (過去 30 日間)
Julien
Julien 2014 年 8 月 12 日
コメント済み: Julien 2014 年 8 月 12 日
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

採用された回答

Azzi Abdelmalek
Azzi Abdelmalek 2014 年 8 月 12 日
編集済み: Azzi Abdelmalek 2014 年 8 月 12 日
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 件のコメント
Julien
Julien 2014 年 8 月 12 日
Thanks, this works exactly as I wanted it to.

サインインしてコメントする。

その他の回答 (1 件)

Evan
Evan 2014 年 8 月 12 日
編集済み: Evan 2014 年 8 月 12 日
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)

カテゴリ

Help Center および File ExchangeMATLAB についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by