How to repeat elements of array in MATLAB
1 次查看(过去 30 天)
显示 更早的评论
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 个评论
Davide Masiello
2022-3-10
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?
采纳的回答
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!