How to repeat elements of array in MATLAB

1 vue (au cours des 30 derniers jours)
Med Future
Med Future le 10 Mar 2022
Modifié(e) : Med Future le 10 Mar 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 commentaires
Davide Masiello
Davide Masiello le 10 Mar 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 le 10 Mar 2022
Modifié(e) : Med Future le 10 Mar 2022
@Davide Masiello Yeah, i want the first values after deleteing the elements

Connectez-vous pour commenter.

Réponse acceptée

Jan
Jan le 10 Mar 2022
Replace:
row(:,end+1:N)=0;
by
row(:,end+1:N) = row(1:size_MP);

Plus de réponses (0)

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Produits


Version

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by