if we have multiple vectors, A,B,C. Each of them has different length. How can we compensate them by NaN into same length and store them as a matrix.

 採用された回答

Stephen23
Stephen23 2022 年 12 月 31 日

0 投票

The simplest approach is to download the function PADCAT() here:
and use it like this:
M = padcat(A,B,C)

3 件のコメント

DDDD
DDDD 2022 年 12 月 31 日
Thank you for your answer! Really appreciate!
Indeed, I will receive a vector from a function, and I want to compensate it into a certian length. For example, I have a loop for 4 times, within each loop I will get a vector, then I need to compensate the vector with NaN within that loop; then in next loop I will have new vector to compensate.
Or to say, I can NOT have A, B , C ,D vector at one time, and I need to compensate all of them....
maybe I can set a vector ' S' with all NaN and enough length, then within each loop, I compensate A/B/C/D with S.
Stephen23
Stephen23 2022 年 12 月 31 日
編集済み: Stephen23 2022 年 12 月 31 日
"For example, I have a loop for 4 times, within each loop I will get a vector, then I need to compensate the vector with NaN within that loop; then in next loop I will have new vector to compensate."
How will you know what length to pad to, if you do not have all of the vectors?
I suspect that you could simply store all of the vectors in a cell array, and then supply them to PADCAT after the loop. This would likely be the simplest approach:
N = 4;
C = cell(1,N); % preallocate!
for k = 1:N
V = your code that generates a vector;
C{k} = V;
end
M = padcat(C{:})
DDDD
DDDD 2023 年 1 月 3 日
Yes you are right and your solution is the straightforward and simple!!! Thanks Stephen, it really helps me!!!!

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

その他の回答 (0 件)

カテゴリ

製品

リリース

R2022b

タグ

質問済み:

2022 年 12 月 31 日

コメント済み:

2023 年 1 月 3 日

Community Treasure Hunt

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

Start Hunting!

Translated by