Way for matching letters and numbers in two files?
1 回表示 (過去 30 日間)
古いコメントを表示
Hello,
I have a question about one code. I have two files. file1, has one column with numbers only. the second file (file2) has two column. in which the first column has numbers and the second columnn has letters/characters. I would like to add a new column in file1 which would have letters/characters, based on the file2 structure.
I send you some pics in order to see what I want to do.
file1
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/468485/image.png)
file2
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/468490/image.png)
final file
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/468495/image.png)
I attach the two files (final1.xlsx & file2.xlsx) and the final file (final_file.xlsx) I would like to create
could you help me please?
0 件のコメント
採用された回答
Image Analyst
2020 年 12 月 22 日
Not sure how file1 is involved. If you want to sort the cell array file2 based on the contents of column 1, use sortrows(ca, 1). If you need anymore help, attach the two files.
3 件のコメント
Image Analyst
2020 年 12 月 23 日
Ivan, I'm sure you've figured it out by now, but a simple for loop will do the trick. Here is what I have:
m1 = readmatrix('file1.xlsx')
ca2 = readcell('file2.xlsx')
col2a = cell2mat(ca2(:, 1))
% Make output cell array
ca3 = cell(size(m1, 1), 2);
for row = 1 : size(m1, 1) % For every row in file 1
rowIn2 = find(col2a == m1(row), 1, 'first'); % Find the first matching row.
ca3{row, 1} = m1(row); % Assign the number
ca3{row, 2} = ca2{rowIn2, 2}; % Assign the letter.
end
ca3 % Show in command window
outputFileName = fullfile(pwd, 'file3.xlsx');
writecell(ca3, outputFileName);
If it works, can you please "Accept this answer"?
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Migrate GUIDE Apps についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!