How would I turn this structure array into a matrix

14 visualizzazioni (ultimi 30 giorni)
I tried this, but i got an error
A = ([topTenWords.word],[topTenWords.frequency])

Risposte (2)

Ameer Hamza
Ameer Hamza il 15 Apr 2020
Modificato: Ameer Hamza il 15 Apr 2020
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 Commenti
Brian Leon
Brian Leon il 15 Apr 2020
This code doesnt order the bar plot from highest frequency to lowest frequency, from left to right. This was my output.
Ameer Hamza
Ameer Hamza il 15 Apr 2020
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)

Accedi per commentare.


Star Strider
Star Strider il 15 Apr 2020
Modificato: Star Strider il 15 Apr 2020
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:

Categorie

Scopri di più su Data Distribution Plots in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by