过滤数据从一个表中。我如何保存值高,0.5 ?

11视图(30天)
我找不到解决我的问题。我有数据存储在一个表中。这个数据代表一个信号的行为。
我想创建一个程序读取表的每一行,如果在一个特定的列值是0不保存,但如果价值更高的开始存钱。
例子:
0 0 0 0 0 1 1.2 1.5 1.6 1.3 2.4 0 0 0 0 0 0 0 0 2 5 3 2 0 0 0 0 0 0 0 0 0 0。。。。。。。。。。
- - - - - - - - - - - - - - - - - -保存1 - - - - - - - - - - - - - - - - - - -保存2 - - - - - - - - - - - - - - - - - - - - - - - - -
代码:
b = (: 4)%列搜索
率= (b)长度%的行数
我= 1:速度
b1 = b(我);%读值的行
如果b1 < 0.5
结束
如果b1 > 0.5
结束
结束
我有一个覆盖问题
希望你能帮助我。谢谢。
2的评论
马里亚纳
马里亚纳 2019年12月7日
是的,我想保存所有行与一个不同的名称值高于0.5每次我又找到他们。

登录置评。

答案(3)

Pandiyaraj Gnanasekar
Pandiyaraj Gnanasekar 2019年12月7日
嗨,玛丽安娜古铁雷斯,
b = (:, 4);%列搜索
率= (b)长度;%的行数
V = 0(速度,1);
i = 1:率
如果b (i) > 0.5
V (i) = b(我);
结束
结束
我认为这可以帮助!试试这下评论或解释更多。
1评论
马里亚纳
马里亚纳 2019年12月7日
一个= xlsread(文件名)
b = (:, 4);%列搜索
率= (b)长度;%的行数
V = 0(速度,1);
i = 1:率
如果b (i) > 0.5
V (i) = b(我);
结束
结束
*我尝试这个,但它节省相同的b值。我不明白为什么。它假设保存值高于0.5 ....

登录置评。


Turlough休斯
Turlough休斯 2019年12月7日
编辑:Turlough休斯 2019年12月7日
你可以为每个块索引的数据如下:
idx =找到((:,4)> 0.5)
idx2 =找到((idx(2:结束)idx (1: end-1)) ~ = 1);
idx2 =独特(排序([min (idx);idx (idx2);idx (idx2 + 1);马克斯(idx))));%的开始和结束的每一块数据。
那你这样的存储数据通常把它变成一个单元阵列:
c = 1:长度(idx2) / 2
数据{c, 1} = (idx2颈- 1 (2 *):idx2 (2 * c):);
结束
编辑:根据下面的评论
6个评论
Turlough休斯
Turlough休斯 2019年12月8日
“我试过,但是不工作也可以节省0值”
我随后编辑我的回答。索引,但有一个问题现在应该没事的。

登录置评。


Pandiyaraj Gnanasekar
Pandiyaraj Gnanasekar 2019年12月7日
嗨,玛丽安娜古铁雷斯,
如果你想要只值大于0.5而不是零。您可以简单地删除这些零向量b。
试试这个,
b = (:, 4);
b (b = = 0) = [];%这将删除从b等于零的值向量。
希望它能解决你的问题。

类别

找到更多的在数值类型帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!