Toggle between temperature units for unit conversion
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Fazlollah
el 14 de Feb. de 2023
Comentada: Image Analyst
el 23 de Feb. de 2023
Hi,
I am trying to make a simple temeprature unit conversion app in MATLAB app maker with a dropdown menu to toggle between temperature units: C, F, and K. I used switch case function to convert degree c to F or K; however, when I want to return back to c or toggle between the units the program gives wrong values. Please help me complete the code to be able to toggle between temperature units. Thanks
function DropDownValueChanged(app, event)
Value=app.TemperatureEditField.Value
switch app.DropDown.Value
case 'C'
app.TemperatureEditField.Value=Value;
case 'F'
app.TemperatureEditField.Value=Value*1.8+32;
case 'K'
app.TemperatureEditField.Value=Value+273.15;
end
end
1 comentario
Fangjun Jiang
el 14 de Feb. de 2023
Of course it has issues. If you continue selecting "K", the program flow will continu adding 273.15 to the current value. You need to add something to recognize the current unit.
Respuesta aceptada
Voss
el 17 de Feb. de 2023
You need to take into account what the old unit was before it was changed. Fortunately, the ValueChangedFcn of a uidropdown provides an event structure which contains that information. See the attached app.
2 comentarios
Jon
el 17 de Feb. de 2023
Very nice!
Gives the OP what he wanted with an interface with just one box. Good to know that the event structure returns the previous value.
Más respuestas (1)
Jon
el 14 de Feb. de 2023
Editada: Jon
el 14 de Feb. de 2023
I think this does what you want.
I have fixed a few errors in your original code, I think you were confused about the value of the drop down selection and the value of the temperature, which was in the edit field.
Also I added another edit field for the resulting output in the new units. Otherwise, as mentioned by @Fangjun Jiang, with repeated operation the value stored in the original edit field no longer has units of C, so the conversion which you have which convert from C to F or K would no longer be correct. Easier to keep the original value as is and then just output to a different edit field.
11 comentarios
Image Analyst
el 23 de Feb. de 2023
Not sure what you mean. Isn't it the obvious:
Tc = (Tf - 32) * 5/9;
Rho_H2O = 999.6 + 2.0438e-1 * Tc - 6.174e-2 * Tc ^ 1.5
Ver también
Categorías
Más información sobre Environment and Settings en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!