小编mat*_*ner的帖子

Matlab - Handle对象属性的唯一对象是指同一个对象吗?

我对如何在matlab中使用句柄对象作为属性感到困惑.例如,我定义了以下类:

classdef Page < handle
properties
    word1;
    word2;
end

classdef Book < handle
properties
    page1 = Page;
    page2 = Page;
end
Run Code Online (Sandbox Code Playgroud)

现在我实例化两本书:

iliad = Book;
odyssey = Book;
Run Code Online (Sandbox Code Playgroud)

如果我检查iliad和odyssey是否相同:

eq(iliad, odyssey)
Run Code Online (Sandbox Code Playgroud)

我明白了:

ans = logical 0
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好

但是,如果我检查iliad和odyssey的page1是否相同:

eq(iliad.page1, odyssey.page1)
Run Code Online (Sandbox Code Playgroud)

我明白了:

ans = logical 1
Run Code Online (Sandbox Code Playgroud)

这个不好!这意味着如果我改变odyssey的page1,iliad的page1也会改变.我有什么误会?我该如何处理这个问题?

oop matlab

5
推荐指数
1
解决办法
86
查看次数

标签 统计

matlab ×1

oop ×1