Removing Nans, converting matrix to vector

Hi
I have 50 x 60 x 45 double arrays, from which I want to remove the Nans, and, which I then want to convert into a (row or column) vector. I realized that the following line should do this (let C be my array):
C(isnan(C)) = [];
is this correct at all? How comes that with this line the matrix is also converted to a vector? Also, are the linear indices of the original matrix used to create the order of the elements in the row vector?
Many thanks

回答 (1 件)

KSSV
KSSV 2016 年 6 月 29 日

0 投票

Let C be you matrix of 50X60X45 matrix
C = C(:) ; % convert to column vector
C(isnan(C)) = [] ; % remove NaNs

2 件のコメント

MiauMiau
MiauMiau 2016 年 6 月 29 日
what is the difference to mine? I dont necessarily want a column vector
KSSV
KSSV 2016 年 6 月 29 日
If you use K(isnan(K)) = []; to a matrix, the output will be always an array. If you want a matrix again, then using find, get the indices of NaN and replace them by your number. Then the output will be a matrix of original size.

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeResizing and Reshaping Matrices についてさらに検索

タグ

質問済み:

2016 年 6 月 29 日

コメント済み:

2016 年 6 月 29 日

Community Treasure Hunt

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

Start Hunting!

Translated by