hello i need an if function that tells matlab to reject a certain value and continue to the next one under a condition

3 次查看(过去 30 天)
for example if
TEL =
1.0e+04 *
2.2786 1.7122 1.3066 1.0110 0.7922 0.6278 0.5027 0.4063 0.2723 0.1880 0.1331 0.0964 0.0712
2.2558 1.6950 1.2935 1.0009 0.7842 0.6215 0.4976 0.4022 0.2696 0.1861 0.1318 0.0955 0.0705
2.2330 1.6779 1.2805 0.9908 0.7763 0.6152 0.4926 0.3982 0.2668 0.1842 0.1305 0.0945 0.0698
2.2102 1.6608 1.2674 0.9807 0.7684 0.6089 0.4876 0.3941 0.2641 0.1823 0.1291 0.0935 0.0691
2.1874 1.6437 1.2543 0.9706 0.7605 0.6026 0.4825 0.3901 0.2614 0.1805 0.1278 0.0926 0.0684
2.1646 1.6265 1.2413 0.9605 0.7525 0.5964 0.4775 0.3860 0.2587 0.1786 0.1265 0.0916 0.0676
i want matlab to compare the first value in each iteration with a number let's just say 1080 so..
if TEL>1080
reject it and move on to the next iteration.

回答(2 个)

Image Analyst
Image Analyst 2019-2-22
What iteration??? Is this in a while or for loop???
By first value do you mean TEL(1)?
Please clarify!
Maybe you want to use if and continue to compare EVERY value of TEL with 1080????
for index = 1 : length(TEL)
if TEL(index) > 1080
% Skip remainder of loop and pick up with the next index.
continue;
end
% Code to do if TEL <= 1080.....
end
  2 个评论
omar mahallawy
omar mahallawy 2019-2-22
sorry if i wasn't clear,
you see TEL is in a for loop that is calculated several times, to be more specific 13 times.
if the first value of the 13 times is bigger than MaxHead i want matlab to ignore it completly and not plot it.
if it's less than MaxHead i want matlab to show it and plot it.
MaxHead=((90*10.^5)./(rough.*g))
Hpump=Hloss+Ze-Zs
LC=1:3200:320000;
for i=1:length(LC)
HlossN=((Fn.*LC(i).*Q.^2)./(12.*Do.^5))
TEL(i,:)=(Hpump-HlossN+Zs)
end
Image Analyst
Image Analyst 2019-2-22
So TEL is a 2D array and you want to check the first column in each row to see if it's more than MaxHead. Then do the first loop 13 times until you have finished creating TEL. Then try
for row = 1 : size(TEL, 1)
% Check if first element in this row is more than MaxHead.
% If it it, skip this loop and check the next row.
if TEL(row, 1) > MaxHead
% Skip remainder of loop and pick up with the next index.
continue;
end
% Code to do if TEL <= MaxHead.....
end
Of course you could put this into the first loop if you want - it depends on what else happens in your first loop and if that needs to happen before checking the value of TEL, or not.

请先登录,再进行评论。


omar mahallawy
omar mahallawy 2019-2-22
no, sir
the first value in each column, if the first value in each column is more than MaxHead then skip the whole row and move on to the next column.
  5 个评论
omar mahallawy
omar mahallawy 2019-2-24
i just need to know how can i extract the columns based on a condition
the condition is (if the first value in the column is less than or equal to MaxHead then extract the whole column)

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by