2013-05-26 31 views
1

我正在使用MATLAB(映射工具箱)在不同國家之間創建大量線條。由於線條太多,我正在嘗試使用面向對象的編程來做到這一點。使用MATLAB繪圖工具箱使用面向對象編程開發Shapefile

問題是我創建了很多來自類'Transline'的對象(線),但是當我嘗試使用'shapewrite'命令將整個集作爲形狀文件導出時,MATLAB會告訴我認爲它是無效的,因爲'shapewrite'命令需要一個類型爲'struct'而不是'Transline'(這是這些對象的類)的輸入參數。有沒有什麼方法可以使用面向對象的編程來將一組線條作爲shapefile導出?

謝謝。

回答

0

我認爲你最好的選擇是簡單地在你的對象上調用struct(myObjs),然後將它傳遞給shapewrite。如果結構的輸出格式不正確,則可以重載對象中的結構方法。例如。

methods 
    function myStructOfObj=struct(obj) 
      %create correct structure 
    end 
end 
+0

謝謝,但你能告訴我在哪裏寫這段代碼嗎?我實際上想要創建超過50行(每行代表一個對象),並將整個集合而不是單獨的行轉換爲結構體。 如果我在我的代碼的最後寫這個,我創建的對象,它只會將第一個轉換成一個結構,忽略其他。如果我將它合併到我的類定義文件中,例如,作爲一種方法,它根本沒有任何影響 – Usman

+0

我終於明白了!感謝您的回答;它真的幫了很多! – Usman

+0

很高興能夠提供幫助,所以我猜你可能認爲struct方法不是遞歸調用你的對象樹。 – Philliproso