MATLAB Answers

# Plotting the data in the given file over time period and tabulating the results

11 views (last 30 days)
susman on 3 Mar 2021
Commented: Star Strider on 4 Mar 2021
I have a model with 10 states and I have frequency of each state over time. The data is stored in a cell array, where each cell of the array has 1x10 values, each value for one state(only for first time period I have 1x7 values). I have attached it in the mat file.
I want to do two things:
1) I want to plot these frequencies over the time time for each state. I am not sure how to do it because the data is in cell array.
2) I want to tabulate these frequencies and make it presentable so that I can document my results, but commands like tabulate(data) does not work.
Please can anyone help me in this?
##### 0 CommentsShowHide -1 older comments

Sign in to comment.

### Accepted Answer

Star Strider on 3 Mar 2021
I have no idea what you want the result to be.
Try this:
D1 = load('data.mat');
StateFrequency = D1.StateFrequency;
Col1 = NaN(10,1);
Col1(1:numel(StateFrequency{1})) = StateFrequency{1};
StateFreq = [Col1, cell2mat(StateFrequency(2:end))];
T1 = array2table(StateFreq);
FirstFiveVariables = T1(:,1:5)
figure
hold on
for k = 1:numel(StateFrequency)
plot(StateFrequency{k})
end
hold off
grid
figure
ribbon(StateFreq)
grid on
xlabel('Column')
ylabel('Frequency')
zlabel('Amplitude')
There are two plots, the first is a 2D line plot and the second is a 3D ribbon plot.
The ‘FirstFiveVariables’ table excerpt displays the first five variables in the table. It is not necessary for the rest of the code, and can be deleted.
##### 4 CommentsShowHide 3 older comments
Star Strider on 4 Mar 2021
As always, my pleasure!

Sign in to comment.

### Community Treasure Hunt

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

Start Hunting!