How to delete multiple elements from array in step by step process and how to store remaining elements in array

3 次查看(过去 30 天)
I have an array A=[1 0.2 7 0.5 3 8]
I want to delete lowest number from this array
A(A==0.2)=[]
A=[1 7 0.5 3 8]
now again I want to delet lowest number from this
A(A==0.5)=[]
A=[1 7 3 8]
Now, How do I store different lengths array for future reference.
array={[1 0.2 7 0.5 3 8];
[1 7 0.5 3 8];
[1 7 3 8];
[7 3 8];
[7 8];
[8]}
is it possible with while loop ???

采纳的回答

DGM
DGM 2021-5-2
For storing dissimilar size/type objects, you can use a cell array:
A = [1 0.2 7 0.5 3 8];
B = cell(numel(A),1);
B{1} = A;
for v = 2:numel(A)
thisvec = B{v-1};
[~,idx] = min(thisvec);
thisvec(idx) = [];
B{v} = thisvec;
end
B{:}
gives
ans =
1.0000 0.2000 7.0000 0.5000 3.0000 8.0000
ans =
1.0000 7.0000 0.5000 3.0000 8.0000
ans =
1 7 3 8
ans =
7 3 8
ans =
7 8
ans =
8
  3 个评论
DGM
DGM 2021-5-2
编辑:DGM 2021-5-2
You could use a while loop, but there's no good reason to use a while loop if the number of iterations is known. It's a lot harder to accidentally make a for-loop become infinite.

请先登录,再进行评论。

更多回答(1 个)

Jan
Jan 2021-5-2
A = [1 0.2 7 0.5 3 8];
nA = numel(A);
array = cell(nA, 1);
for k = 1:nA
array{k} = maxk(A, nA - k + 1);
end

类别

Help CenterFile Exchange 中查找有关 Matrices and Arrays 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by