I want A=[1,2,3,4] to
become A=[1,2,3,4,1,2,3,4] by x2
or
become A=[1,2,3,4,1,2] by x1.5
is it possible?

 採用された回答

Paul
Paul 2023 年 9 月 9 日

1 投票

A=[1,2,3,4]
A = 1×4
1 2 3 4
horzcat(A,A)
ans = 1×8
1 2 3 4 1 2 3 4
horzcat(A,A(1:floor(numel(A)/2))) % or use ceils depending on how you want to handle the case where numel(A) is odd
ans = 1×6
1 2 3 4 1 2

その他の回答 (1 件)

Dyuman Joshi
Dyuman Joshi 2023 年 9 月 9 日
編集済み: Dyuman Joshi 2023 年 9 月 9 日

1 投票

Here's a generalised code -
A=[1,2,3,4];
B = repetition(A,2)
B = 1×8
1 2 3 4 1 2 3 4
B = repetition(A,1.5)
B = 1×6
1 2 3 4 1 2
B = repetition(A,2.75)
B = 1×11
1 2 3 4 1 2 3 4 1 2 3
B = repetition(A,3.3)
Error using solution>repetition
Incompatible number for repetition
function B = repetition(A,n)
B = repmat(A,1,ceil(n));
k = numel(A)*n;
%k needs to be an integer to repeat an array by a non-integer number
%Check for a number being an integer is the reminder when divided by 1 is zero
if rem(k,1)
error('Incompatible number for repetition');
else
B = B(1:k);
end
end

カテゴリ

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

質問済み:

2023 年 9 月 9 日

コメント済み:

2023 年 9 月 9 日

Community Treasure Hunt

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

Start Hunting!

Translated by