How would I turn this structure array into a matrix
조회 수: 14 (최근 30일)
이전 댓글 표시
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/284773/image.png)
I tried this, but i got an error
A = ([topTenWords.word],[topTenWords.frequency])
댓글 수: 0
답변 (2개)
Ameer Hamza
2020년 4월 15일
편집: Ameer Hamza
2020년 4월 15일
If you want to have different data types then you need to use cell array
A = [{topTenWords.word}' {topTenWords.frequency}']
If you want to save as matrix, you need to use seperate variables
A_word = {topTenWords.word}';
A_freq = [topTenWords.frequency];
댓글 수: 6
Ameer Hamza
2020년 4월 15일
I think that the vector [topTenWords.frequency] is not always sorted. try this.
A_word = categorical({topTenWords.word}');
A_freq = [topTenWords.frequency];
[A_freq, idx] = sort(A_freq, 'descend');
A_word = A_word(idx);
ax = subplot(1,2,2);
bar(A_word, A_freq, 'FaceColor',[0.8500 0.3250 0.0980])
title('Most Frequent Words')
ylabel('Word Frequenices')
ax.XAxis.Categories = A_word;
xtickangle(90)
Star Strider
2020년 4월 15일
편집: Star Strider
2020년 4월 15일
You did it correctly in the files in How can i remove from a cell array, the words in another cell array?
EDIT — (15 Apr 2020 at 18:51)
Try this:
D3 = load('topTenWords.mat');
word = cellfun(@(x)x, {D3.topTenWords.word}, 'Uni',0)
frequency = cellfun(@(x)x, {D3.topTenWords.frequency});
figure
bar(frequency)
set(gca, 'XTickLabel',word, 'XTickLabelRotation',30)
producing:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/284804/image.png)
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Data Distribution Plots에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!