Class MATLAB类中常量属性上冒号运算符的怪异行为

Class MATLAB类中常量属性上冒号运算符的怪异行为,class,matlab,constants,colon,Class,Matlab,Constants,Colon,我有一个奇怪的问题,我无法解决,也无法在互联网上找到任何解决方案: classdef test properties(Constant) bla = {'Marker', 'o', 'MarkerEdgeColor', 'b', 'MarkerFaceColor', 'b'}; end end 在命令行中使用冒号操作符访问test.bla:test.bla{:}。但当我在另一个类中使用它时,情况并非如此: classdef foo properties

我有一个奇怪的问题,我无法解决,也无法在互联网上找到任何解决方案:

classdef test
    properties(Constant)
        bla = {'Marker', 'o', 'MarkerEdgeColor', 'b', 'MarkerFaceColor', 'b'};
    end
end
在命令行中使用冒号操作符访问
test.bla
test.bla{:}
。但当我在另一个类中使用它时,情况并非如此:

classdef foo
    properties
    end

    methods
        function this = foo()
            test.bla

            a = test.bla;
            a{:}

            test.bla{:}            
        end
    end    
end
使用
a=test.bla非常麻烦;一直以来,{:}
。。。 有什么建议吗?
非常感谢

事实上,它不起作用!我真的很惊讶

我发现您可以使用:

x = {test.bla(:)};

这将为您提供所有元素。

事实上,它不起作用!我真的很惊讶

我发现您可以使用:

x = {test.bla(:)};

这将为您提供所有元素。

test.bla{:}
可能不是您想要做的。它实际上返回了多个答案,从命令行的输出可以看出。你能把你的代码贴在你实际使用
a
的地方吗。请注意,
test.bla(:)
在这两个地方都可以工作。我实际上想这样做,因为我想使用
plot(x,y,test.bla{:})
作为单个参数展开!您还可以将
bla
定义为结构,其中字段是属性名称,然后使用
test调用绘图。bla
test。bla{:}
可能不是您想要做的。它实际上返回了多个答案,从命令行的输出可以看出。你能把你的代码贴在你实际使用
a
的地方吗。请注意,
test.bla(:)
在这两个地方都可以工作。我实际上想这样做,因为我想使用
plot(x,y,test.bla{:})
作为单个参数展开!您还可以将
bla
定义为结构,其中字段是属性名,然后使用
test.bla
调用绘图。谢谢,但我需要将其用作单函数参数,因此我必须使用
x={test.bla(:)};我的_函数(x{:})
与使用
x=test.bla一样痛苦(可能更痛苦:);my_函数(x{:})
。。。但是好吧,我没有在上面的帖子中发布关于函数调用的信息!谢谢你!也许我发现了一个matlab错误,耶;是啊,忘了投票了。事实上,这不是一个真正的解决方案,因为你刚刚确认了我发布的内容,但尽管我会接受它,否则我将不再有100%的成功率:):)也许将来会有其他人在这里提供帮助:)谢谢,但我需要将其用作单函数参数,因此我必须使用
x={test.bla(:)};我的_函数(x{:})
与使用
x=test.bla一样痛苦(可能更痛苦:);my_函数(x{:})
。。。但是好吧,我没有在上面的帖子中发布关于函数调用的信息!谢谢你!也许我发现了一个matlab错误,耶;是啊,忘了投票了。事实上,这并不是一个真正的解决方案,因为你刚刚确认了我发布的内容,但尽管我会接受它,否则我将不再有100%的成功率:):)也许将来会有其他人在这里提供帮助:)