2013-05-26 32 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