How to add NaN values to a matrix?

134 次查看(过去 30 天)
Hi, I need to add NaN values to two matrices. One is a 1x48000 and it needs to be 1x48449 and the other is 4x48000 and it needs to be 4x48449. How can I do that? I need to add these extra values because the 1x48000 matrix is beign concatinated with another matrix of size 1x48449. So I was thinking to add some NaN values or maybe substract the 449 extra values from the second matrix.
Can anyone help me understand this better? Thank you for any help you can provide.

回答(2 个)

Cris LaPierre
Cris LaPierre 2020-11-13
Use the missing function.
% Define a 4x5 matrix
A=ones(4,5);
% Turn into a 4x9
A(:,end+1:9)=missing
A = 4×9
1 1 1 1 1 NaN NaN NaN NaN 1 1 1 1 1 NaN NaN NaN NaN 1 1 1 1 1 NaN NaN NaN NaN 1 1 1 1 1 NaN NaN NaN NaN
  2 个评论
Yelitza Perez
Yelitza Perez 2020-11-14
Thank you! I like your answer. But how would this work if I already defined the matrix in a previous line? (I had to change the name because I have two matrices on my workspace with the same name)
Cris LaPierre
Cris LaPierre 2020-11-14
That's what my code does. I first defined the matrix A, then I increased its size by adding NaNs.
It would appear you know the size of your matrices, so adapt the code I shared to increase the size of your smaller matrix so that it is the size of the larger one.

请先登录,再进行评论。


Setsuna Yuuki.
Setsuna Yuuki. 2020-11-13
编辑:Setsuna Yuuki. 2020-11-13
A = rand(1,48000) %Matrix of example (1x48000)
B = rand(1,48449) %Matrix of example (4x48449)
C = [A;B(1:48000)] %You can take the matrix values from 1 to 48000, and concatenate.
and
A = rand(4,48000) %Matrix of example (4x48000)
B = rand(4,48449) %Matrix of example (4x48449)
C = [A;B(1:4,1:48000)] %You can take the matrix values from 1 to 48000, and concatenate.
  2 个评论
Yelitza Perez
Yelitza Perez 2020-11-14
Thanks for this answer! Would the 'rand' part generate random values on a 1x48000 matrix? Because my 1x48000 already have values. I don't want to overide them, I just want to add 449 NaN more values at the end so it could work when I concatenate it with my other 1x48449 matrix.
Sorry I am new at this.
Setsuna Yuuki.
Setsuna Yuuki. 2020-11-14
A and B are your matrix, rand is a method to create random data, but is only a example.
A; %your 1x48000 matrix
B; %your 1x48449 matrix
C=[A B(1:48000)] %concatenate A matrix and B matrix, but only from element 1 to element 48000 of B matrix
This method removes values from matrix B does not add NaN in matrix A

请先登录,再进行评论。

类别

Help CenterFile 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