Effacer les filtres
Effacer les filtres

Inserting data of one matrix into another

4 vues (au cours des 30 derniers jours)
Chris
Chris le 26 Sep 2014
Commenté : James Tursa le 3 Avr 2015
If I have a vector a
0
0
1
1
0
0
and a vector b
5
6
and I want to input the data of b into the nonzero elements of a (which will always be together and matching the dimensions of b), so that vector c reads
0
0
5
6
0
0
What is an easy way to do this? Thank you!
Another example that it needs to work for:
a b c
_ _ _
0 4 0
0 8 0
1 3 ----> 4
1 7 8
1 3
1 7

Réponse acceptée

Adam
Adam le 26 Sep 2014
Modifié(e) : Adam le 26 Sep 2014
  10 commentaires
José-Luis
José-Luis le 26 Sep 2014
Please accept the answer of it solved your problem.
Shane Hagen
Shane Hagen le 3 Avr 2015
I have a slightly different issue maybe someone can help?
I have a matrix [signal] of 315954x64 of signal data. In another matrix [FFlash] (155520x1) there is logical 1 or 0 depending on an activation
I have categorized the signal matrix to obtain a matrix [FFsignal] (155520x64) of data when there is an activation
To graph I need matrices of similar dimensions so I wanted to insert the categorized data into a matrix of zeros of size (315954x64)
For example the first group of activation is in rows 631-654 and when categorized I have data for those time points. I want to add this data to a matrix of zeros in the same time points if possible. Therego, zeros until 631-654 and so on through the set. Please help!

Connectez-vous pour commenter.

Plus de réponses (2)

Stephen23
Stephen23 le 3 Avr 2015
Modifié(e) : Stephen23 le 3 Avr 2015
MATLAB's powerful indexing makes this easy, if we use logical indexing:
>> a = [false;false;true;true;false;false];
>> b = [5;6];
>> c = zeros(size(a));
>> c(a) = b
c =
0
0
5
6
0
0
And the same for the second example:
>> a = [false;false;true;true;true;true];
>> b = [4;8;3;7];
>> c = zeros(size(a));
>> c(a) = b
c =
0
0
4
8
3
7
  3 commentaires
Stephen23
Stephen23 le 3 Avr 2015
Modifié(e) : Stephen23 le 3 Avr 2015
"I have a slightly different issue..." → ask a new question.
Shane Hagen
Shane Hagen le 3 Avr 2015
I posted the question :Inserting data into matrix of zeros from another matrix.

Connectez-vous pour commenter.


LUI PAUL
LUI PAUL le 3 Avr 2015
Modifié(e) : LUI PAUL le 3 Avr 2015

try simple

a=[0;0;1;1;0;0];

b=[5;6];

p=find(a>0);

a(p)=b

a =

     0
     0
     5
     6
     0
     0
  5 commentaires
LUI PAUL
LUI PAUL le 3 Avr 2015
Modifié(e) : LUI PAUL le 3 Avr 2015
for logical a,...try this
a = logical([0 0 1 1 0 0]);
a=double(a);
b = [5 6];
p = find(a>0);
a(p) = b
a =
0 0 5 6 0 0
what do you think @James will it work?
James Tursa
James Tursa le 3 Avr 2015
Yes.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Matrices and Arrays dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by