2013-04-15 18 views
1

我有數據存儲在變量data在matlab中跳過'x'的多個點並存儲和變量'newdata

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。

+0

是否希望從每個第x個(例如第三個,如果x = 3)行提取數據? –

回答

5

這與索引簡單:

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

這是答案。爲任何乘數插入'x'變量 –

1

如果我理解正確的問題:

數據(X:X:長度(數據),:)

-1

你可以只做到這使用mod(模)函數逐行掃描它以提取對應於所需倍數的行。例如:

x=3; 
newdata=[]; 

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

過分複雜,沒有預分配和增長的數組。 – Oleg