Info

Cette question est clôturée. Rouvrir pour modifier ou répondre.

# Plot from 2 matrixes as x value and 1 matrix as y

1 vue (au cours des 30 derniers jours)
Fredrik Preus Dovland le 21 Sep 2020
Clôturé : MATLAB Answer Bot le 20 Août 2021
Ok, so I have 2 cell-arrays:
Time{} = 1x4249
The time format is: HH:MM
Date{} = 1x4249
The date format is: dd.mm.yyyy
They corresponds to each other and the lasts 7 days. In addition to those arrays I have another matrix for available parking spots thoughout 7 days:
parking[] = 1x4249
My task is to plot 180 values from parking for each Xtick which is eaqual to 6 hours from the time cell. On the labels of the plot I have to include both the date and time at the x-axis and the avalability at the y-axis.
I am pretty new to Matlab so i would really appreciate help, and if the description was a little confusing I apologize.
##### 3 commentairesAfficher 1 commentaire plus ancienMasquer 1 commentaire plus ancien
David Hill le 21 Sep 2020
Should not be difficult. Please provide a sample of what your data looks like. What have you done so far?
Fredrik Preus Dovland le 21 Sep 2020
So far i have:
y=[jernbanen_num];
x=[str];
plot(y)
set(gca,'xticklabel',x.')
Where "jernbanen_num" is the matrix containing available parking spots and "str" is a combined cell-array of the time and date

### Réponses (1)

Seth Furman le 21 Oct 2020
1) It is simpler and more efficient to store durations and datetimes in a duration or datetime array respectively instead of a cell array.
Assuming Time is a cell array of durations and Date is a cell array of datetimes, we can convert them as follows.
Time = [Time{:}];
Date = [Date{:}];
2) As the name implies, datetime arrays can store date AND time information, so we can combine Date and Time.
Date = Date + Time;
Date.Format = 'dd.MM.yyyy hh:mm';
3) Datetimes can be plotted directly with our data.
Assuming parking is an array of doubles, we can plot them as follows.
plot(Date,parking)
4) Capitalization matters when setting the format of a datetime or duration.
The format "dd.mm.yyyy" refers to days, minutes, and years. In fact we probably want "dd.MM.yyyy", which refers to days, months, and years.