How can i decrease the execution time of a matrix classification?

I have a sparse matrix 34x2(or two column matrices of size 34).In the first column i have some double numbers and on the second column i have their id's(1-25), meaning that in both columns the non zero elements are in the same row. What i need is to create a sparse matrix 34x25 in order to classify the double numbers of the first column considering their id's.
At the moment i am using
temp1 = bsxfun(@eq,W(:,2),k);
IDClass = bsxfun(@times,temp1,W(:,1));
%where k is a vector with values 1:15
this procedure is quite costly so i need a faster way to do it but it still has to be vectorized. Any help?

 采纳的回答

I'm not sure exactly what you want IDClass to look like, but I think you want something like this:
% Random data
rng(2)
A = [rand(5, 1), randperm(5).']
% Create a sparse matrix
S = sparse(1:size(A, 1), A(:, 2), A(:, 1))
% Display it as a full matrix
full(S)
If that's not what you want, can you show how you want the S generated from this A data to look?

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by