repeat values within array

2 Ansichten (letzte 30 Tage)
Kati
Kati am 4 Jun. 2021
Kommentiert: Kati am 26 Jun. 2021
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

Akzeptierte Antwort

Rik
Rik am 4 Jun. 2021
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 Kommentare
Kati
Kati am 26 Jun. 2021
I'm sorry, I still don't understand it. It's always the 3x3 matrix, but I need it in 9x1..
Kati
Kati am 26 Jun. 2021
I solved it.Thank you for your help!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by