Determining units for a variable

2 Ansichten (letzte 30 Tage)
James Akula
James Akula am 9 Jan. 2019
Kommentiert: James Akula am 9 Jan. 2019
Hi all,
I think I know the answer for the specific problem below, but I wonder if there is a more general process that could be evaluated using a program like MATLAB's Symbolic Math toolbox.
For example, in the equation
f(I)=a(1-exp(-b∙10^I))
let's say that I know that f(I) is in microvolts (uV), a is in microvolts (uV), and I is in log candela seconds per meter squared [log (cd s / m^2)]. If I don't know what unit b is in, is there any way to determine it "algebraically"?
Since f(I) and a are int he same units, then the expression in the exponent must be dimensionless, and so I take it that b must be equal to m^2/(cd∙s). But, assuming this is correct, how does one prove it?
Thank you in advance for your feedback.

Antworten (1)

madhan ravi
madhan ravi am 9 Jan. 2019
Bearbeitet: madhan ravi am 9 Jan. 2019
  1 Kommentar
James Akula
James Akula am 9 Jan. 2019
Thank you for yoru quick reply. I am aware of symunit as a means for keeping track of the units a value is in, but I am not sure how to make it work in the type of situation described above.
I have gotten this far:
syms b % This is the variable for which I do not have a priori units
u = symunit;
f = u.mcV
a = u.mcV
I = log10(u.cd * u.s * u.m^2)
solve(f == a*(1 - exp(-b*10^I)), b)
I get an empy sym. This behavior is expected, as "solve" is clearly not the right command here. But I cannot figure out what command is appropriate. I was hoping for something like:
b =
([m]^2/([cd]*[s]))
Again, my issue is, if I know the units of all variables but one (or more?) in an equation, how can I find out what units the unknown variable(s) must be in to make the equation balance.
Am I on the right track? Any advice?

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by