1

我将数据存储在变量中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]

我怎么做?

PS 我会使用命令 textscan。

4

3 回答 3

5

这对于索引很简单:

newData = data(3:3:end,:)
于 2013-04-15T14:10:49.380 回答
1

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

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

于 2013-04-15T14:10:56.530 回答
-1

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

x=3;
newdata=[];

for k=1:size(data,1)
  if mod(k,x)==0
    newdata=[newdata; data(k,:)];
  end
end
于 2013-04-15T14:17:55.450 回答