how to multiply simplest way this two vectors ?
Afficher commentaires plus anciens
I have to multiply this xi and y this way:
xi = [98 99 100 101 102 103]; y = [2 4 6 4 3 1]; x = [ 98*ones(1,2), 99*ones(1,4), 100*ones(1,6), 101*ones(1,4),... 102*ones(1,3), 103*ones(1,1) ]
it is possible to somthing this to make.... x = xi.*( ones(1,y(1:end)) ) % this is not working
1 commentaire
Stephen23
le 3 Déc 2014
Réponse acceptée
Plus de réponses (2)
This is not a multiplication.
One of many ways to do what you want:
xi = [98 99 100 101 102 103];
y = [2 4 6 4 3 1];
x = cell2mat(arrayfun(@(v, r) repmat(v, 1, r), xi, y, 'UniformOutput', false))
Andrei Bobrov
le 3 Déc 2014
a = accumarray(cumsum([1; y(:)]),1);
x = xi(cumsum(a(1:end-1)));
Catégories
En savoir plus sur Creating and Concatenating Matrices dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!