Norm of group of elements whose position is reported on a cell array
2 views (last 30 days)
Show older comments
Dear all,
I have a vector x containing 4095 unknowns. I know that these unknowns have been already clustered into 115 classes, whose positions are reported in a cell array of length 115 (i.e. at position i of the cell array, there are the indexes of all the elements in the vector x belonging to class i). My questions is the following. Is there a way to get a vector with the 2-norm of the elements of x which belongs to each clusters (hence, a vector of length 115) WITHOUT using any loop? My problem arises since I have to pass such norms as a variable to be optimized by a numerical solver (cvx). Hence, since it will be part of the objective function to be optimized, I cannot put any cycle inside of it. Moreover, my objective function also contains a linear combinations of such unknowns, hence it is not so evident to me if there exist any bounds which may satisfy my request as a work-around. If required, I can pre-transform the cell array into another structure.
Many thanks for the attention and my best regards.
Jason.
0 Comments
Accepted Answer
Akira Agata
on 15 Apr 2018
Edited: Akira Agata
on 15 Apr 2018
Like this?
% Sample data x and class info cell array g
x = rand(10,1);
g = {[1 3 5 7 9],[2 4 6 8 10]};
% Calculate 2-norm for each class
func = @(idx) norm(x(idx));
d = cellfun(func,g);
1 Comment
More Answers (0)
See Also
Categories
Find more on Data Type Identification in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!