Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MATLAB-针对单元阵列绘制向量_Matlab_Plot - Fatal编程技术网

MATLAB-针对单元阵列绘制向量

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

我想做一些像 分散(时间、空间) 其中timesRefined是一个单元格数组,其中每个条目都是一个对应于某个时间点的字符串,例如8:32:21.122,upProb只是一个与单元格数组长度相同的数字向量。最方便的方法是什么?

应该会有帮助。如果所有的值都是数值,您将得到一个矩阵

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
和do
scater(mod(datenum(timesRefined),1),upProb)

编辑:


正如所指出的,您可以直接使用datenum的结果作为
x
值,并使用
datetick('x','HH:MM:SS.FFF')

而不是修改日期,您只需使用
datetick('x','HH:MM:SS.FFF')调整刻度标签即可。