Creating subplots based on a cell array
古いコメントを表示
Hi,
If I have two cells like this:
cell1 = {'AA' 'AA' 'BC' 'BC' 'BC' 'DD' 'DD'; 1 2 3 4 5 6 7; 7 6 5 4 3 2 1; 5 9 8 7 6 5 4}
cell2 = {'AA' 'AA' 'BC' 'BC' 'BC' 'DD' 'DD'; 3 4 5 6 7 8 9; 2 3 4 5 6 7 8; 9 8 7 6 5 4 3}
Is there a way to create subplots based on matching the strings from the first row, where there is not necessarily an equal number of strings for all?
The final figures would look something like this:



Thank you!
4 件のコメント
the cyclist
2023 年 7 月 11 日
Is the pattern of alphabetic characters (e.g. 'AA') guaranteed to be identical between the two cell arrays?
Liam
2023 年 7 月 11 日
Liam
2023 年 7 月 11 日
採用された回答
その他の回答 (1 件)
cell1 = {'AA' 'AA' 'BC' 'BC' 'BC' 'DD' 'DD'; 1 2 3 4 5 6 7; 7 6 5 4 3 2 1; 5 9 8 7 6 5 4};
cell2 = {'AA' 'AA' 'BC' 'BC' 'BC' 'DD' 'DD'; 3 4 5 6 7 8 9; 2 3 4 5 6 7 8; 9 8 7 6 5 4 3};
numbers1 = cell2mat(cell1(2:end,:));
numbers2 = cell2mat(cell2(2:end,:));
[uniqueAlpha,~,indexFromUniqueToAll] = unique(cell1(1,:));
numberUniqueAlpha = numel(uniqueAlpha);
for na = 1:numberUniqueAlpha
columnsThisAlpha = find(indexFromUniqueToAll==na);
numberColumnsThisAlpha = numel(columnsThisAlpha);
figure
tt = tiledlayout(numberColumnsThisAlpha,1);
title(tt,uniqueAlpha(na))
for nc = 1:numberColumnsThisAlpha
nexttile
plot(numbers1(:,nc),numbers2(:,nc))
end
end
カテゴリ
ヘルプ センター および File Exchange で Shifting and Sorting Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



