Using bsxfun to plot

2 次查看(过去 30 天)
Jae Won Lee
Jae Won Lee 2021-11-20
编辑: Matt J 2021-11-21
%% I have this following code:
n=10000;
g = exp(-linspace(-2,2,round(n/30)).^2);
[origsig, signal] = deal(conv(randn(n,1),g,'same'));
propnoise = 0.02;
noisepnts = randperm(n);
noisepnts = noisepnts(1:round(n*propnoise));
for ti = 1:length(noisepnts)
tidx = noisepnts(ti):noisepnts(ti)+ceil(rand*10);
signal(tidx) = NaN;
end
%%
islands = bwconncomp (~isfinite(signal));
islands.N = cellfun(@length,islands.PixelIdxList);
filtsig = signal;
for ii = 1:islands.NumObjects
bndpoints = [islands.PixelIdxList{ii}(1)-1 islands.PixelIdxList{ii}(end)+1];
if bndpoints(1)<1 || bndpoints(2)>n
continue
end
linterp = linspace(0,1,islands.N(ii)+2)*diff(signal(bndpoints)) + signal(bndpoints(1));
filtsig(bndpoints(1):bndpoints(2)) = linterp;
end
  3 个评论
Walter Roberson
Walter Roberson 2021-11-20
I do not see a question? You showed your code but I do not see where you ask for information or advice?
Jae Won Lee
Jae Won Lee 2021-11-21
Hi,
I have made the time series with using a faulty device that could eliminate the certain data points and using linear interpolation to fill in the missing values. I am wondering how I could plot these plots using bsxfun.
bsxfun(@time,[signal filtsig],???)

请先登录,再进行评论。

回答(1 个)

Matt J
Matt J 2021-11-21
编辑:Matt J 2021-11-21
Now idea why you think bsxfun should be involved. Why not just,
t=linspace(-2,2,n);
plot(t,signal,t,filtsig)

类别

Help CenterFile Exchange 中查找有关 Image Processing Toolbox 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by