How can I assign a set of data from a 'meta.class' object propertys to a string array without using a loop statement?
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
fa wu
el 20 de Ag. de 2023
Comentada: fa wu
el 21 de Ag. de 2023
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 comentario
Stephen23
el 20 de Ag. de 2023
"I'd like to know if there's a simpler way to achieve the same result"
Respuesta aceptada
Bruno Luong
el 20 de Ag. de 2023
Editada: Bruno Luong
el 20 de Ag. de 2023
cellarray... not array
mc=?ClassA;
K={mc.MethodList.Name}
%or if prefer
M=string(K)
Más respuestas (0)
Ver también
Categorías
Más información sobre Testing Frameworks en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!