how can i make a function choose?

If i had

DN= [[0.125 0.25 0.375 0.5 0.75 1 1.25 1.5 2 2.5];
OD=[0.405 0.540 0.675 0.84 1.05 1.315 1.66 1.9 2.375 2.875];
t=[0.068 0.088 0.091 0.109 0.113 0.133 0.14 0.145 0.154	0.203];

the above 3 matrix have the same no. of variables. and V varies from 1.5 to 3

ID = sqrt(4.*Q.* 0.000011574074./(pi.*V));
OD = ID + 2.*t;

and i need the OD function choose a the next large number from matrix above. Then align ID , t , DN with it.

11 Comments

What are ‘Q’, ‘V’, and ‘v’?

There is one V ( mistake type) Q is input no say 1054
if i understood your question right
try F=[OD ID' t' DN']

‘V varies from 1.5 to 3’

Does this mean, for example:

V = 1.5 : 0.5 : 3;

or something else?

V=1.5:0.1:3; ID, OD, t, DN is the required
@Amjad Green I can't understand the answer
@Mahmoud Sami: I do not understand your question. What is the wanted output for the given example input? What does "align" mean? What is "next large number"?
@Jan The output in that function is ID (Internal pipe diameter ). But ID=OD-2t t and DN is vectors and there must be chosen from it. SO if you get ID no say 10 so OD and t will have numbers but out of vectors so step froward to take the number is the vector more large than that number. I wish i could inform you more simple.
I can try to simplify it. DN, t, & OD is ASME standard, V is velocity Q is discharge. V is recommended to vary from 1.5 to 3 so i must choose the above variables from ASME table that get make V (1.5 to 3) and the relation connect them is ID = sqrt(4.*Q.* 0.000011574074./(pi.*V)); & OD = ID + 2.*t; So if OD get no not in table i must choose the higher one then ID be changed.
@Mahmoud Sami: I do not have any idea of what "ASME standard" is. I do not understand the meaning of the other sentences of your comment also. Again: What is the wanted output for the given example input?
if i have F=[OD ID' t' DN'] as above comment I need 4 variables in that matrix with condition for V (1.5 :3 )

Sign in to comment.

 Accepted Answer

Walter Roberson
Walter Roberson on 21 Apr 2018
"and i need the OD function choose a the next large number from matrix above. "
interp1() with the 'next' option.

8 Comments

I have Eq.
ID= (4.*Q./(pi.*V)).^0.5;
Q and V is given no.
but need ID to be selected from table, if any other answer can be rejected or choose the nearest large no. of it.
let's say
ID =[0.0134 0.0403 0.0769 0.1023 0.1213 0.1523 0.2031 0.2570 0.3118 0.3436]
and V vary from 1.5 to 3 Q=0.2
I don't know how
bin = discretize( Computed_ID, List_of_Valid_ID, 'IncludedEdge', 'right');
adjusted_ID = List_of_Valid_ID(bin);
Mahmoud Sami
Mahmoud Sami on 27 Apr 2018
Edited: Mahmoud Sami on 27 Apr 2018
That's great it do what i need. Please can you help me in the next part of the question. If we put all listed Value of ID, DN, t, OD in a matrix F=[DN; OD; t; ID] then we get the adjusted ID from the above answer, how can we get the others separately .
I don't think I understand the question?
That is the actual table
DN=[15,20,25,32,40,50,65,80,100,150,200,250,300,350,400,450,500,550,600,650,700,750,800,850,900,950,1000,1050,1100,1150,1200];
OD=[21,26,33,42,48,60,73,89,114,168,219,273,324,355,406,457,508,559,610,660,711,762,813,864,914,965,1016,1067,1118,1168,1219];
t=[2,3,3,4,4,4,5,5,6,7,8,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10];
ID=[17,20,27,34,40,52,63,79,102,154,203,255,304,335,386,437,488,539,590,640,691,742,793,844,894,945,996,1047,1098,1148,1199];
for every single value in ID there is a value in t, DN, OD aligned with it without any mathematical relations so your code get me ID. Is there any method to get the other values
adjusted_OD = OD(bin);
adjusted_DN = DN(bin);
adjusted_t = t(bin);
Thanks alot.

Sign in to comment.

More Answers (0)

Categories

Find more on General Applications in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!