how to set a unit to variable?
    15 views (last 30 days)
  
       Show older comments
    
I encounter the error after run this :
    30*unit::mm
2 Comments
  Walter Roberson
      
      
 on 20 Apr 2020
				Discussion of character strings is not very relevant to the question of whether MATLAB can handle units.
Accepted Answer
  Karan Gill
    
 on 7 Apr 2017
        
      Edited: Karan Gill
    
 on 17 Oct 2017
  
      Units are now in MATLAB if you have Symbolic Math Toolbox. Try:
>> u = symunit; 
>> x = 2*u.meter 
x = 
2*[m]
>> x = rewrite(x,u.ft) 
x = 
(2500/381)*[ft]
>> double(separateUnits(x)) 
ans = 
    6.5617
1 Comment
  Walter Roberson
      
      
 on 8 Apr 2017
				Note: the implementation of units has difficulty with quantity 0, which tends to make the most difference with temperature (e.g., 0C and 0F)
More Answers (2)
  the cyclist
      
      
 on 27 Dec 2015
        In general, MATLAB variables do not have units, and what you have written is not a valid MATLAB syntax (to my knowledge).
There is a contribution to the File Exchange that allows for assigning unit to variables: http://www.mathworks.com/matlabcentral/fileexchange/29621-units-conversion-toolbox/content/UnitConversion-rev2/html/defining.html.
1 Comment
  Karan Gill
    
 on 7 Apr 2017
				
      Edited: Karan Gill
    
 on 7 Apr 2017
  
			Units are now in MATLAB if you have Symbolic Math Toolbox. See the tutorial: https://www.mathworks.com/help/symbolic/units-of-measurement-tutorial.html
Posted a separate answer below so that OP can accept.
  Steven Lord
    
      
 on 27 Dec 2015
        That syntax is specifically for use in the MuPAD Notebook Interface (as stated by the note at the top of this documentation page) not in MATLAB.
3 Comments
  Walter Roberson
      
      
 on 29 Dec 2015
				You should consider instead using (at the MATLAB level)
30 * sym('unit::mm')
  Walter Roberson
      
      
 on 13 Oct 2020
				30 * sym('unit::mm')
is no longer supported. These days you should use symunit . Or if you are despairate, 
30 * feval(symengine, 'unit::mm')
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!