Concatenate two vectors with different dimensions and sort the result in an ascending order.

29 ビュー (過去 30 日間)
Lama Hamadeh
Lama Hamadeh 2023 年 4 月 5 日
編集済み: MarKf 2023 年 4 月 5 日
Hi,
If I have two vectors with different dimensions as following:
A = [ 1 ; 3 ; 6];
B = [ 2 ; 4 ; 5 ; 7, 0];
How can I vertically concatenate them and then sort their elements in an ascending order so the result would be as:
C = [0 ; 1 ; 2 ; 3 ; 4 ; 5 ; 6 ; 7]
Thanks.
  2 件のコメント
Lama Hamadeh
Lama Hamadeh 2023 年 4 月 5 日
I have tried "cat" but it only works for concatenating two vectors of similar dimensions.

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

回答 (2 件)

Luca Ferro
Luca Ferro 2023 年 4 月 5 日
編集済み: Luca Ferro 2023 年 4 月 5 日
Be careful because you made a typo while defining B, the last element has a ',' instead of a ';'. B = [ 2 ; 4 ; 5 ; 7 >,< 0];
After correctly defining it, you should be able to do this:
A = [ 1 ; 3 ; 6];
B = [ 2 ; 4 ; 5 ; 7; 0];
C=sort(vertcat(A,B));
or even a shorter variation:
C=sort([A;B]);

MarKf
MarKf 2023 年 4 月 5 日
編集済み: MarKf 2023 年 4 月 5 日
vertcat(A,B) or cat(1,A,B) or just [A;B] is what you need to concatenate vertically. then just sort
Your code however gives the "concatenated not consistent" error because in B the last element is separated by a comma instead of a semicolon.
A = [ 1 ; 3 ; 6];
B = [ 2 ; 4 ; 5 ; 7; 0];
C = sort([A;B])
C = 8×1
0 1 2 3 4 5 6 7

カテゴリ

Help Center および File ExchangeCreating and Concatenating Matrices についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by