2013-05-30 90 views
-1

考慮大小爲m * n的區域。這裏m和n的大小是未知的。現在我正在從該地區的每個點提取數據。我正在掃描沿x方向前進的區域直到m點,並且再次返回到m = 0和n = 1,即第二行。我再次沿着x方向掃描直到m的結尾。下面顯示了一個數據的例子。在這裏我可以得到掃描過程中不同x,y座標的值。我可以在x方向的前兩個點之間執行操作執行循環以執行以下操作

p1 = A{1}; %%reading the data from the text file 
p2 = A{2}; 
LA=[p1 p2]; 

for m=1:length(y) 
p= LA(m,1); 
t= LA(m,2); 

%%and 

q=LA(m+1,1) 
r=LA(m+1,2) 

我想對y軸做同樣的操作。那就是我想在x = 0和y = 1的第一個點之間,然後在x = 2和y = 1之間操作,依此類推。希望你已經得到它。

g x y 
2 0 0 
3 1 0 
2 2 0 
4 3 0 
1 4 0 
2 m 0 
3 0 1 
2 1 1 
4 2 1 
5 3 1 
. 
. 
. 
. 
2 m 1 

現在我就在想一個邏輯,我將首先由數零

NUMX = 0; 
while y((NUMX+1),:) == 0 
    NUMX = NUMX + 1; 
    end 
NU= NUMX; 

然後我想將下面的循環

for m=1:NU:n-1 
%%and 
    p= LA(m,1); 
    t= LA(m,2); 


%%and 

q=LA(m+1,1) 
r=LA(m+1,2) 
的數量求n的大小

但它顯示錯誤。請幫忙!!

??? Attempted to access del2(99794,:); index out of bounds because 
size(del2)=[99793,1]. 

這裏NUMX = 198

+0

發佈了一個工作示例和錯誤消息 – Schorsch

+0

您是否意識到'NUMX = 198'與size(del2)= [99793,1]'不匹配,因爲'198'不是'99793的偶數除數'? – Schorsch

回答

0

評論:你的問題的命名是不一致的,因此很難理解你在做什麼。您在錯誤消息中提到的變量del2無處可見。

1.)首先創建一個最小工作示例,說明數據結構並提供我們稍後要檢索的維度的知識。您矩陣不是m x n而是m*n x 3
以下是你在你的問題表現出例如將設立類似於數據矩陣:

M = zeros(8,3); 

for J=1:4 
    for I=1:2 
     M((J-1)*2+I,1) = rand(1); 
     M((J-1)*2+I,2) = I; 
     M((J-1)*2+I,3) = J-1; 
    end 
end 

M = 
    0.469 1 0 
    0.012 2 0 
    0.337 1 1 
    0.162 2 1 
    0.794 1 2 
    0.311 2 2 
    0.529 1 3 
    0.166 2 3 

2)接下來,讓我們確定的xy數量,使用你的問題的命名:

NUMX = 0; 
while M(NUMX+1,3) == 0 
    NUMX = NUMX + 1; 
end 

NUMY = size(M,1)/NUMX; 

NUMX = 
     2 

NUMY = 
     4 

3)數據處理你想要做的仍然是不清楚的,但在這裏是可以用於不同的手段兩種方法:
(一)

COUNT = 1; 
for K=1:NUMX:size(M,1) 
    A(COUNT,1) = M(K,1); 
    COUNT = COUNT + 1; 
end 

在這種情況下,您將逐步瀏覽第一列M,步長爲NUMX。這將導致所有的值x=1

A = 
    0.469 
    0.337 
    0.794 
    0.529 

(b)您也可以使用NUMXNUMY重新排序M

for J=1:NUMY 
    for I=1:NUMX 
     NEW_M(I,J) = M((J-1)*NUMX+I,1); 
    end 
end 

NEW_M = 
     0.469 0.337 0.794 0.529 
     0.012 0.162 0.311 0.166 

矩陣NEW_M現在是大小m x n的,與價值列中的常數y以及行中的常數x的值。

結束語:您不清楚如何在代碼中定義mn,因此您的特定錯誤消息無法在此解析。

+0

@rohan:請考慮接受這個答案,方法是點擊投票按鈕旁邊的複選標記(✓),或評論什麼不適合你。 – Schorsch