跳过'x'的多个点并在matlab中存储和变量'newdata

时间:2013-04-15 14:03:29

标签: matlab textscan

我将数据存储在变量data

 data =  
    [43.98272955    39.55809471;            
    -49.51656799    28.57164726;
    -9.475861028    -44.31264255;
    27.14884251     2.603921223;
    -2.914496888    7.864022006;
    4.093025860     4.816211687;
    -12.11007479    5.797539648;
    -1.653535904    -12.49864642;
    5.978990391     1.229984916;
    0.9837133282    -2.001124423;
    5.674977844     6.323209942;
   -9.574459589     3.696791663;
    0.3410452503    -7.338955191]

但只需要使用与多个x对应的数据。 示例:

   if x = 3,

只想存储3行的多行,所以

newdata = [-9.475861028 -44.31264255; 
4.093025860 4.816211687; 
5.978990391 1.229984916;
-9.574459589 3.696791663]

我该怎么做?

P.S我会使用命令textscan。

3 个答案:

答案 0 :(得分:5)

这很简单,有索引:

newData = data(3:3:end,:)

答案 1 :(得分:1)

如果我正确理解了这个问题:

数据(X:X:长度(数据),:)

答案 2 :(得分:-1)

您可以使用mod(modulo)函数逐行扫描,以提取与所需倍数对应的行。例如:

x=3;
newdata=[];

for k=1:size(data,1)
  if mod(k,x)==0
    newdata=[newdata; data(k,:)];
  end
end