matlab - 消除 MATLAB 中与列对应的行中为零的值

标签 matlab rows threshold

我有一个正在尝试分析的数据矩阵。我有一个数据,我应用了一些处理部分,并且在尝试对其应用阈值时,我设法获得了低于一定水平的一些信息。因此,在我应用阈值后,数据变为 0 点。所以我想知道是否有一种方法可以消除点而不在其间留下 0。这就是带有零的数字的样子 enter image description here 我试图在没有间隙的情况下绘制它,X 轴是时间,y 轴是幅度。那么是否可以只绘制蓝色的事件和时间?

%Find time
N = size(prcdata(:,1),1); 
t=T*(0:N-1)';
figure;
plot(t,U);
t1=t(1:length(t)/5);
X=(length(prcdata(:,4))/5);
a = U(1 : X);
threshold=3.063;
A=a>threshold;
plot_vals=a.*A;
figure; 
plot(t2,plot_vals1); %gives the plot which i added with this 

我还尝试使用这段代码来将没有零的事件组合在一起,但它给我的只是 0 处的直线图。

%% Eliminate the rows and colomns which are zero
    B1=plot_vals1(plot_vals1 <= 0, :); 
    figure;
    plot(B1);

还有什么办法可以把上图的散点图取掉吗?将使用 scatter(t2,plot_vals1);工作?

最佳答案

如果您只想显示那些高于阈值的点,您可以使用 logical index并将不需要的点的值设置为 NaN :

threshold = 3.063;
index = (a <= threshold);
a(index) = NaN;
figure;
plot(t1, a);

NaN 的数据点根本不会显示,leaving a break in your plot 。这是一个简单的示例,用红色绘制正弦波的正点:

t = linspace(0, 4*pi, 100);
y = sin(t);
plot(t, y)
hold on;
index = (y < 0);
y(index) = nan;
plot(t, y, 'r', 'LineWidth', 2);

enter image description here

关于matlab - 消除 MATLAB 中与列对应的行中为零的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46167738/

相关文章:

matlab - matlab 脚本中是否使用了某些 matlab 例程?

html - 如何对齐一行中的DIV

php - 使用 PHP 返回行的问题

c++ - OpenCV 双矩阵除以标量产生不正确的结果

matlab - 将数值转换为字符向量时未获得预期结果

Matlab:真正的全局变量

javascript - 在 PHP 和 JavaScript 中保存动态添加的行

java - OpenCV 找到轮廓 : make it robust

r - 评估 R 中的统计模型

python - 通过颜色 OpenCV 2.x 跟踪多个对象