How can I assign a set of data from a 'meta.class' object propertys to a string array without using a loop statement?
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaire
Réponse acceptée
Bruno Luong
le 20 Août 2023
Modifié(e) : Bruno Luong
le 20 Août 2023
cellarray... not array
mc=?ClassA;
K={mc.MethodList.Name}
%or if prefer
M=string(K)
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Logical dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!