How can I assign a set of data from a 'meta.class' object propertys to a string array without using a loop statement?
2 次查看(过去 30 天)
显示 更早的评论
When I run 'mc=?ClassA' in command line, I got a meta.class object mc. mc.MethodList.Name store all the motheds of ClassA
I run 'K=[mc.MethodList(:,1).Name]' in command line,I got :
K = 'ClassAemptyeqneltgtlegedeleteisvalidfindpropnotifynotifyaddlistenerlisteneraddlistenerlisteneraddlistenerlisteneraddlistenerlisteneraddlistenerlistenerfindobj'
I want to separate the 24 concatenated "method names." like this:
K=['ClassA' 'empty' …………]
I've tried several methods, and only the following approach works, but it requires a lot of code. I'd like to know if there's a simpler way to achieve the same result?
b=cell(1,24);
[b{1,:}]=deal('');
[b{1,1},b{1,2}]=deal(mc.MethodList(1,1).Name,mc.MethodList(2,1).Name);
b{1,1}
ans = 'ClassA'
b{1,2}
ans = 'empty'
If you want to complete all variable assignments, you need the following code:
[b{1,1},b{1,2},…………]=deal(mc.MethodList(1,1).Name,mc.MethodList(2,1).Name,…………);
ClassA.m
classdef ClassA < handle
properties (SetObservable) %或(SetObservable=true)
x=1;
y=2;
end
events
kk
end
methods
function obj=ClassA()
x=1;
end
end
end
1 个评论
采纳的回答
Bruno Luong
2023-8-20
编辑:Bruno Luong
2023-8-20
cellarray... not array
mc=?ClassA;
K={mc.MethodList.Name}
%or if prefer
M=string(K)
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!