Info

この質問は閉じられています。 編集または回答するには再度開いてください。

Suggestion on what im doing wrong.

1 回表示 (過去 30 日間)
Osman Motta
Osman Motta 2020 年 10 月 22 日
閉鎖済み: MATLAB Answer Bot 2021 年 8 月 20 日
I need to write a code that exclude the 2 smallest elements
clear all;clc
A=[8 1 -2 9 5 11 6]; %Should print A=[8 9 5 11 6]
B=[];
C=[];
for i=1:length(A)
if A(i)==min(A)
else
B=[B A(i)];
if A(i)==min(A)
else
C=[C A(i)];
end
end
end
C
This is a homework question and I am not looking for someone to do the work for me. I just need to know what I'm doing wrong.
So I just came up with this and I'm testing multiple numbers. Does it make sense and is there a way to simplify it?
clear all;clc
A=[8 1 -2 9 5 6];
B=[];
C=[];
for i=1:length(A)
if A(i)==min(A)
else
B=[B A(i)];
end
end
for i=1:length(B)
if B(i)==min(B)
else
C=[C B(i)];
end
end
C
So far it seems to work but I would appreciate any constructive input.
  2 件のコメント
Walter Roberson
Walter Roberson 2020 年 10 月 22 日
What is the expected result if the vector contains duplicate values that are equal to the minimum? What is the expected result if the vector contains duplicate values that are equal to the second-smallest original value?
Can we assume that the values are non NaN (Not A Number)?

回答 (1 件)

Sudhakar Shinde
Sudhakar Shinde 2020 年 10 月 22 日
The 'min' function and for loop will help:
A=[8 1 -2 9 5 11 6];
n=2; % Exclude 2 smallest elements
for i=1:n
[num,id]=min(A);
A(id)='';
end
disp(A)
  3 件のコメント
Osman Motta
Osman Motta 2020 年 10 月 22 日
Thank you for the input. When I posted the original I made grammatical errors due to the fact I’ve been awake for 40hr due to an emergency, I would never delete someone’s input whether I agreed with it or not. I appreciate your help.
Rik
Rik 2020 年 10 月 22 日
@Osman, no problem, my comment was not aimed at you.

Community Treasure Hunt

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

Start Hunting!

Translated by