Sum Object Properties: Signal
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Nycholas Maia
el 11 de En. de 2018
Comentada: Nycholas Maia
el 12 de En. de 2018
I create my object using this class:
classdef myClass
properties
signal = [1 1 2 2 3 3];
end
end
The I instantiate N object of this class:
N = 1000;
for i = 1:N
obj(N) = myClass;
end
I would like to sum the 'signal property' of all N object and return a vector with same size of 'signal property' (6 col x 1 row).
Like this:
result_vector = Sum(obj.signal);
The result should be like:
[X X Y Y Z Z]
Is there any optimized way to do this sum operation without using a FOR loop? How can I do that?
0 comentarios
Respuesta aceptada
Gabriele Bunkheila
el 12 de En. de 2018
I agree with the previous suggestion, another close variation being:
sum(vertcat(obj.signal))
If myClass was instead a System object (such as many filters and other signal processing algorithms found in MATLAB toolboxes), then you'd want to use cell arrays instead, via something like the following:
N = 1000;
obj = cell(N,1);
for i = 1:N
obj{i} = myClass;
end
In that case, I believe the syntax could get a bit more involved so I thought I'd include an example for reference:
sum(cell2mat(cellfun(@(c) c.signal, obj,'UniformOutput',false)))
Thanks,
Gabriele.
Más respuestas (0)
Ver también
Categorías
Más información sobre Software Development Tools en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!