Borrar filtros
Borrar filtros

How to repeat elements of array in MATLAB

2 visualizaciones (últimos 30 días)
Med Future
Med Future el 10 de Mzo. de 2022
Editada: Med Future el 10 de Mzo. de 2022
hello everyone i hope you are doing well
The data in the file is 250x1000, i have implemeneted the following code to delete 5% samples randomly from each row and replace zero at the end to complete the shape 1000 samples
Instead of zero, i want to repeat the array of each row from start complete the shape of 1000.
for example
in row 150 i have a data like data
[200 400 800 1000 800 200 400 ......]
When the below code run it remove 50 samples (950 samples remaining) and add 50 zeros (after 950) at the end of the row.
But i want to repeat the the row from start like [200 400 800 ....] will be added at the end of the row depend on the samples removes
How can i do it ?
dataset=load('datasetvalue').dataset;
[M,N] = size(dataset) ;
percentageMP=5;
size_MP=round(percentageMP/100*N);
Discards=nan(M,size_MP);
for i=1:M
row=dataset(i,:);
discard=randperm(N,size_MP);
row(discard)=[];
row(:,end+1:N)=0;
dataset(i,:)=row;
Discards(i,:)=discard;
end
Discards=sort(Discards,2);
  2 comentarios
Davide Masiello
Davide Masiello el 10 de Mzo. de 2022
Do you want to replace the zeros with the first values in the row before or after you have randomly deleted 5% of the elements in it?
Med Future
Med Future el 10 de Mzo. de 2022
Editada: Med Future el 10 de Mzo. de 2022
@Davide Masiello Yeah, i want the first values after deleteing the elements

Iniciar sesión para comentar.

Respuesta aceptada

Jan
Jan el 10 de Mzo. de 2022
Replace:
row(:,end+1:N)=0;
by
row(:,end+1:N) = row(1:size_MP);

Más respuestas (0)

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Productos


Versión

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by