Determining units for a variable

3 views (last 30 days)
James Akula
James Akula on 9 Jan 2019
Commented: James Akula on 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.

Answers (1)

madhan ravi
madhan ravi on 9 Jan 2019
Edited: madhan ravi on 9 Jan 2019
  1 Comment
James Akula
James Akula on 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?

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!