extract a number N of equally spaced rows within a matrix
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Alberto Acri
el 22 de Sept. de 2023
Comentada: Alberto Acri
el 24 de Sept. de 2023
HI! I have a number N and a matrix with 100 rows and 2 columns.
How can I recover N rows of the matrix so that they are as equidistant from each other as possible?
For example:
- with N = 10 I will have 10 rows (row 1, 11, 21, 31,...)
- with N = 7 I will have 7 rows (row 1, 15, 29,...) In this case the steps are like 100/7 = 14.28 = 14.
a=1:1:100;
a=a';
b=0.1:0.1:10;
b=b';
M=[a,b]; % example matrix
N=10; % number of rows
step = height(M)/N;
step = 14; % round down
v = 1:step:height(M);
M_new = M(v,:);
0 comentarios
Respuesta aceptada
Fangjun Jiang
el 22 de Sept. de 2023
Editada: Fangjun Jiang
el 22 de Sept. de 2023
M=repmat((1:100)',1,2);
N=7;
d=M(round(linspace(1,height(M),N)),:)
0 comentarios
Más respuestas (1)
Dyuman Joshi
el 22 de Sept. de 2023
Editada: Dyuman Joshi
el 22 de Sept. de 2023
You are on the right course -
a=(1:1:100)';
b=(0.1:0.1:10)';
M=[a,b]; % example matrix
N=7; % number of rows
step = height(M)/N
%Use floor to round down to nearest integer less than or equal to step
step = floor(step) % round down
v = 1:step:height(M)
M_new = M(v,:)
8 comentarios
Dyuman Joshi
el 24 de Sept. de 2023
Editada: Dyuman Joshi
el 24 de Sept. de 2023
"when height(M) is 100 and N is 10, it is hard to say which one is the right answer."
OP has specified what the expected outcome is and the logic behind it -
HI! I have a number N and a matrix with 100 rows and 2 columns.
How can I recover N rows of the matrix so that they are as equidistant from each other as possible?
For example:
- with N = 10 I will have 10 rows (row 1, 11, 21, 31,...)
- with N = 7 I will have 7 rows (row 1, 15, 29,...) In this case the steps are like 100/7 = 14.28 = 14.
Ver también
Categorías
Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!