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

采纳的回答

Bruno Luong
Bruno Luong 2023-8-20
编辑:Bruno Luong 2023-8-20
cellarray... not array
mc=?ClassA;
K={mc.MethodList.Name}
K = 1×24 cell array
Columns 1 through 15 {'ClassA'} {'empty'} {'eq'} {'ne'} {'lt'} {'gt'} {'le'} {'ge'} {'delete'} {'isvalid'} {'findprop'} {'notify'} {'notify'} {'addlistener'} {'listener'} Columns 16 through 24 {'addlistener'} {'listener'} {'addlistener'} {'listener'} {'addlistener'} {'listener'} {'addlistener'} {'listener'} {'findobj'}
%or if prefer
M=string(K)
M = 1×24 string array
Columns 1 through 17 "ClassA" "empty" "eq" "ne" "lt" "gt" "le" "ge" "delete" "isvalid" "findprop" "notify" "notify" "addlistener" "listener" "addlistener" "listener" Columns 18 through 24 "addlistener" "listener" "addlistener" "listener" "addlistener" "listener" "findobj"

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

产品


版本

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by