MATLAB-针对单元阵列绘制向量
我想做一些像 分散(时间、空间) 其中timesRefined是一个单元格数组,其中每个条目都是一个对应于某个时间点的字符串,例如8:32:21.122,upProb只是一个与单元格数组长度相同的数字向量。最方便的方法是什么?应该会有帮助。如果所有的值都是数值,您将得到一个矩阵MATLAB-针对单元阵列绘制向量,matlab,plot,Matlab,Plot,我想做一些像 分散(时间、空间) 其中timesRefined是一个单元格数组,其中每个条目都是一个对应于某个时间点的字符串,例如8:32:21.122,upProb只是一个与单元格数组长度相同的数字向量。最方便的方法是什么?应该会有帮助。如果所有的值都是数值,您将得到一个矩阵 timestr = '8:32:21.122'; timenum = strsplit(timestr,':'); convmat = [60*60; 60; 1]; time_in_seconds = sum(time
timestr = '8:32:21.122';
timenum = strsplit(timestr,':');
convmat = [60*60; 60; 1];
time_in_seconds = sum(timenum .* convmat);
您可以使用
datenum
>> timesRefined = {'8:32:21.122','9:30:54.123'};
>> datenum(timesRefined)
ans =
734869.355800023
734869.396459757
结果数字将日期表示为从历元算起的天数。由于您不关心天数,只关心时间,并且假设您的观察结果包含在一天之内,您只需获取datenum
输出的小数部分即可:
>> datestr(mod(datenum(timesRefined),1))
ans =
8:32 AM
9:30 AM
和doscater(mod(datenum(timesRefined),1),upProb)
编辑:
正如所指出的,您可以直接使用datenum的结果作为
x
值,并使用datetick('x','HH:MM:SS.FFF')
而不是修改日期,您只需使用datetick('x','HH:MM:SS.FFF')调整刻度标签即可。