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 中查找有关 Sparse Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by