2011-02-15 109 views
0

我想製作一個映射座標的程序。我無法讓Matlab選擇基於向量不等式的特定值。也許我做錯了,但這裏是我的代碼,其中g是一個給出點的全球位置的向量。 EL是「對象」的長度,局部座標是一維情況下「對象」上點的座標。然後,重新評估這些局部座標,以便在全局對象的長度上給出-1到1的值。 PL是全局對象的位置。Matlab選擇基於矩陣值的值

%Get the local coordinates of the points 

for g=(gp(gp>0)) 
    for n1=(gp(gp<EL(1,1))) 
    gp1=[n1, 1]; 
    end; 
    for x=(gp(PL((x1-1),1)<gp<PL((x1),1))); 
    gp2=[(x-(EL(x1,1))),1]; 
    end 
    for x=(gp((PL(x1,1)<=gp))); 
    gp3=[((x)-(EL(x1,1))),1]; 
    end 
    lpap=([gp1,gp2,gp3]); 
    %use the local coordinates to get the natural coordinates 
    for x=(gp(gp<=EL(1,1))) 
    nc=[((lpap*2)/EL(1,1))-1,1]; 
    end 
    for x=(gp(PL(x1-1,1)<gp<PL(x1,1))); 
    nc1=[((lpap*2)/EL(x1,1))-1,1]; 
    end 
    for p=(gp(PL(x1,1)<=gp)); 
    nc2=[((lpap*2)/EL(x1,1))-1,1]; 
    end 
    nct=[nc,nc1,nc2] 

end 

除了NCT不是-1到1之間,我知道什麼是錯的,因爲運行這給了我爲X,P,N1的變量,這應該給多值一個恆定值。

回答

2

我不知道你想在這裏做什麼,我建議您閱讀MATLAB對flow control文檔,以獲得如何在MATLAB程序,但只是爲了讓你開始一個更好的主意......

在過去的一個數組在MATLAB工作循環:

for n = 1:10 
    % do stuff 
end 

要選擇基於價值的陣列的部分,你可以使用索引引用:

a = [1 2 3 4 5 6 7 8]; 
a_gt_four = a(a>4); % returns [5 6 7 8]; 
+0

好的,謝謝你幫助了很多。我已閱讀matlab中的流量控制,我欣賞鏈接。我可以看到代碼看起來很愚蠢,我只是嘗試了很多其他的東西,而這正是我頭腦中有意義的東西。這是第一次在MATLAB中編程。它現在可以工作,除了一部分。如果我無法弄清楚,我會重新發布新的代碼。再次感謝 – user618204 2011-02-15 18:10:52