Borrar filtros
Borrar filtros

How would I turn this structure array into a matrix

11 visualizaciones (últimos 30 días)
Brian Leon
Brian Leon el 15 de Abr. de 2020
Comentada: Ameer Hamza el 15 de Abr. de 2020
I tried this, but i got an error
A = ([topTenWords.word],[topTenWords.frequency])

Respuestas (2)

Ameer Hamza
Ameer Hamza el 15 de Abr. de 2020
Editada: Ameer Hamza el 15 de Abr. de 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 comentarios
Brian Leon
Brian Leon el 15 de Abr. de 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 el 15 de Abr. de 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)

Iniciar sesión para comentar.


Star Strider
Star Strider el 15 de Abr. de 2020
Editada: Star Strider el 15 de Abr. de 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:

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by