在 App 设计工具的 UIAxes 上绘制过滤后的时间序列数据
Plotting filtered time-series data on UIAxes in App Designer
我在 App Designer 中(使用 2017b)在 UIAxes 上绘制一些时间序列数据时遇到问题。
原始时间序列数据噪声很大,因此加载的数据(用户通过UIGetFile选择)在检查后进行去趋势和陷波滤波(陷波的频率来自用户输入的UITable)单独的 UIAxes 上的 Welch PowerSpectra。
我可以很容易地让它在 App Designer 之外工作,但最好将它全部保存在 UIFigure 和指定的 UIAxes 中(我可以让过滤的时间序列数据显示在单独的图中,只是不在 UIAxes [与频谱图有同样的问题])。
Bx = app.Bx; % Grabs data from loaded file
t = 0:(size(Bx,1)-1); % Sets the time from size of data
t = t/Freq; % divides time by Frequency @ which the data is recorded
Bx1 = timeseries(Bx, t); % Set the timeseries
FreqNotch = app.UITable.Data; % Grab Frequencies to Notch from values entered in UITable
Bx1 = detrend(Bx,'constant'); % Get rid of the mean
ts1 = idealfilter(Bx1,FreqNotch,'Notch'); % Notch filter the data
plot(app.UIAxes, ts1); % Doesn't work, returns error
plot(ts1); % Does Work, just plots in a seperate figure
错误信息是:
使用绘图时出错。
数据必须是数字、日期时间、持续时间或可转换为双精度的数组。
根据您提供的信息,我怀疑问题出在您访问数据的方式上,在 app.designer class 中,存储为 "properties" 的数据通常组织在细胞.
根据我修改语法的经验,您用于访问数据(大括号、圆括号、点符号等)将解决此问题。
如果没有更多信息,我将无法给出更精确的解决方案(即使这个答案是在问题出现六个月后做出的)。
下面是我用来在应用程序设计器的 UIAxes 上绘制陷波滤波时间序列数据的解决方案的一部分,轴上有正确的日期和时间。这是针对 5 个独立通道(仅在下面显示一个)的 90 分钟块(~550 Mb ascii 文件)中的 1000Hz 数据。
app.Bx = app.DataLoaded(:,8); % time series data from imported text file
% set the date and time from loaded data YYYY MM DD HH MM SS MS
app.dateT = datetime(app.DataLoaded(:,1),app.DataLoaded(:,2),app.DataLoaded(:,3),app.DataLoaded(:,4),app.DataLoaded(:,5),app.DataLoaded(:,6),MilliSec);
t = 0:(size(app.Bx,1)-1); % set the time variable from 0 to length of file
t = t/app.Frequency; % in seconds and correct for Frequency rate
app.Bx = detrend(app.Bx,'linear'); % removing of best straight-line fit from data
app.Bx = detrend(app.Bx,'constant'); % removes the mean value from data
FreqNotch = (app.UITable.Data); % get the data entered in the notch table
FreqNotch = cell2mat(FreqNotch); % convert table cell to matrix
app.FilteredBx = idealfilter(app.Bx,FreqNotch,'notch'); % notch filter each
line(app.UIAxesTS1,app.dateT,(app.Bx.data),'Color',[0.27 0.87 1], 'LineWidth',0.8);
干杯,BK
我在 App Designer 中(使用 2017b)在 UIAxes 上绘制一些时间序列数据时遇到问题。
原始时间序列数据噪声很大,因此加载的数据(用户通过UIGetFile选择)在检查后进行去趋势和陷波滤波(陷波的频率来自用户输入的UITable)单独的 UIAxes 上的 Welch PowerSpectra。
我可以很容易地让它在 App Designer 之外工作,但最好将它全部保存在 UIFigure 和指定的 UIAxes 中(我可以让过滤的时间序列数据显示在单独的图中,只是不在 UIAxes [与频谱图有同样的问题])。
Bx = app.Bx; % Grabs data from loaded file
t = 0:(size(Bx,1)-1); % Sets the time from size of data
t = t/Freq; % divides time by Frequency @ which the data is recorded
Bx1 = timeseries(Bx, t); % Set the timeseries
FreqNotch = app.UITable.Data; % Grab Frequencies to Notch from values entered in UITable
Bx1 = detrend(Bx,'constant'); % Get rid of the mean
ts1 = idealfilter(Bx1,FreqNotch,'Notch'); % Notch filter the data
plot(app.UIAxes, ts1); % Doesn't work, returns error
plot(ts1); % Does Work, just plots in a seperate figure
错误信息是:
使用绘图时出错。 数据必须是数字、日期时间、持续时间或可转换为双精度的数组。
根据您提供的信息,我怀疑问题出在您访问数据的方式上,在 app.designer class 中,存储为 "properties" 的数据通常组织在细胞.
根据我修改语法的经验,您用于访问数据(大括号、圆括号、点符号等)将解决此问题。
如果没有更多信息,我将无法给出更精确的解决方案(即使这个答案是在问题出现六个月后做出的)。
下面是我用来在应用程序设计器的 UIAxes 上绘制陷波滤波时间序列数据的解决方案的一部分,轴上有正确的日期和时间。这是针对 5 个独立通道(仅在下面显示一个)的 90 分钟块(~550 Mb ascii 文件)中的 1000Hz 数据。
app.Bx = app.DataLoaded(:,8); % time series data from imported text file
% set the date and time from loaded data YYYY MM DD HH MM SS MS
app.dateT = datetime(app.DataLoaded(:,1),app.DataLoaded(:,2),app.DataLoaded(:,3),app.DataLoaded(:,4),app.DataLoaded(:,5),app.DataLoaded(:,6),MilliSec);
t = 0:(size(app.Bx,1)-1); % set the time variable from 0 to length of file
t = t/app.Frequency; % in seconds and correct for Frequency rate
app.Bx = detrend(app.Bx,'linear'); % removing of best straight-line fit from data
app.Bx = detrend(app.Bx,'constant'); % removes the mean value from data
FreqNotch = (app.UITable.Data); % get the data entered in the notch table
FreqNotch = cell2mat(FreqNotch); % convert table cell to matrix
app.FilteredBx = idealfilter(app.Bx,FreqNotch,'notch'); % notch filter each
line(app.UIAxesTS1,app.dateT,(app.Bx.data),'Color',[0.27 0.87 1], 'LineWidth',0.8);
干杯,BK