repeat values within array

12 ビュー (過去 30 日間)
Kati
Kati 2021 年 6 月 4 日
コメント済み: Kati 2021 年 6 月 26 日
Hi,
I have an array, that I need to extend. In specific I need to repeat each value n times. n is the length of another vector. I can select the number of value that needs to be repeated and I can repeat it, but I can't append it to the other repeated values in my for loop. It only shows the repetition of the last value. My code is as followed:
X=[0.5;0.5;0.6;0.6];
Y=[0.6;0.7;0.6;0.7];
dx=0.05;
dy=0.05;
X_klein=[min(X):dx:max(X)]';
Y_klein=[min(Y):dy:max(Y)]';
for m=1:length(X_klein)
XX=X_klein(m);
XX1=repmat(XX,length(Y_klein),1);
XX1(m)=[XX1(m);XX1];
end

採用された回答

Rik
Rik 2021 年 6 月 4 日
You can edit your code using a cell array for the long way round:
X=[0.5;0.5;0.6;0.6];
Y=[0.6;0.7;0.6;0.7];
dx=0.05;
dy=0.05;
X_klein=[min(X):dx:max(X)]';
Y_klein=[min(Y):dy:max(Y)]';
XX1=cell(1,numel(X_klein));
for m=1:numel(X_klein)
XX=X_klein(m);
XX1{m}=repmat(XX,numel(Y_klein),1);
end
XX1=cell2mat(XX1);
disp(XX1)
0.5000 0.5500 0.6000 0.5000 0.5500 0.6000 0.5000 0.5500 0.6000
Or use meshgrid for the shorter way:
[XX1,YY1]=meshgrid(X_klein,Y_klein);
disp(XX1)
0.5000 0.5500 0.6000 0.5000 0.5500 0.6000 0.5000 0.5500 0.6000
  4 件のコメント
Kati
Kati 2021 年 6 月 26 日
I'm sorry, I still don't understand it. It's always the 3x3 matrix, but I need it in 9x1..
Kati
Kati 2021 年 6 月 26 日
I solved it.Thank you for your help!

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by