跳过一组文件

1视图(过去30天)
MR0d
MR0d 2019年11月27日
评论道: MR0d2019年12月2日
我从最近的一个实验中有600个.vec文件,我需要从这个组中删除/跳过某些文件,因为它们包含坏数据。假设我需要删除文件132、290和404。我该怎么做呢?这里是我创建矩阵的代码,我需要。谢谢你!
rightfiles = dir (‘* .vec‘);%仅选择以.vec结尾的目录中的文件。生成一个600x1结构。
z=1:1:大小(右文件)
f = importdata ([rightfiles (z) . name]);%转换数据从。vec到。mat
%将x、y、u、v分别设置为rightfiles中仅列1-4的矩阵
x=f.数据(:,1);
y = f.data (:, 2);
u = f.data (:, 3);
v = f.data (:, 4);
%将x,y,u,v重塑成IxJ矩阵
xx=重塑(x[I,J]);
yy =重塑(y) (I, J));
uu =重塑(u, (I, J));
vv =重塑(v, (I, J));
%转换为正确的单位
ConversionU = uu。* (m_pix / dt);
ConversionV = vv。* (m_pix / dt);
ConversionX = xx * m_pix;
ConversionY = yy * m_pix;
%堆叠vec文件
U (:,:, z) = ConversionU;
V (:,:, z) = ConversionV;
X (:,:, z) = ConversionX;
Y (:,:, z) = ConversionY;
结束
2的评论
MR0d
MR0d 2019年12月2日
我已经检查了数据,选择了数据不好的文件。

登录评论。

答复(2)

简
2019年11月28日
编辑: 2019年11月28日
“文件132、290和404”是什么意思?这些是指数吗 rightfiles ,或者这些是文件名的一部分?
rightfiles = dir (‘* .vec‘);
Rightfiles ([132, 290, 404]) = [];
z = 1:元素个数(rightfiles)
f = importdata (rightfiles (z) . name);
...
我添加了一些更改:
  • 大小(rightfield)回答一个向量。1:1:向量可能会回答你意想不到的问题。虽然这个在这里适用于事故,但使用起来更安全元素个数代替。
  • 1:x看起来比1:1好
  • 不需要方括号rightfiles (z) . name.[和]是连接操作符。只有一个输入,没有什么要连接的。
在循环之前应用预分配。让数组迭代地增长是非常昂贵的。
1评论
MR0d
MR0d 2019年12月2日
我选择的随机数只是例子。它们是我想要排除的正确文件的随机索引。谢谢你的建议。我确实有提前分配的线路,只是觉得这对我的问题不重要所以我没有包括它们。非常感谢。

登录评论。


图像分析员
图像分析员 2019年11月28日
使一个函数调用HasGoodData(),该函数接受f并确定数据是否为坏数据,并返回true表示好数据,返回false表示坏数据。然后,在循环中。。。
z=1:大小(右文件)
f = importdata ([rightfiles (z) . name]);%将数据从.vec转换为.mat
如果~ HasGoodData (f)%如果不是很好的数据…
继续跳过此文件,跳到循环的最底部,但继续下一次迭代。
结束
%为好的数据运行代码…
结束for循环的%

标签

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始打猎吧!