Difference between revisions of "Units in Matlab"

From biophysics
Jump to navigation Jump to search
Line 26: Line 26:
 
* Use SI-units (without prefixes) as much as possible.
 
* Use SI-units (without prefixes) as much as possible.
 
* Variables like ''someLength, someTime, someVolume'' are assumed in SI-units.
 
* Variables like ''someLength, someTime, someVolume'' are assumed in SI-units.
* Variables in non SI-units like nanometer, millisecond or gallon should have explicit '''suffixes''' like ''someLength_nm, someTime_ms or someVolume_gallon''.
+
* Variables in non-basic SI-units like nanometer, millisecond or gallon should have explicit '''suffixes''' like ''someLength_nm, someTime_ms or someVolume_gallon''.
 
* Use of radians for angles is implicit. When using degrees use the suffix "_deg".
 
* Use of radians for angles is implicit. When using degrees use the suffix "_deg".
  
 
Secondary rules:  
 
Secondary rules:  
* If an input interface has non-standard SI units, convert them to SI-units as soon as you read them from the interface.
+
* If an input interface has non-basic SI units, convert them to SI-units as soon as you read them from the interface.
* If an output interface needs non-standard SI units, convert the from SI-units as late as possible, just before outputting them.
+
* If an output interface needs non-basic SI units, convert the from SI-units as late as possible, just before outputting them.

Revision as of 13:15, 18 March 2024

Introduction

There are several ways to use variables with units in a program. Space probes have crashed on Mars due to invalid assumptions about units for some variables. So how can we avoid this type of disasters? We have to make it as simple as possible!

SI units

We have the SI-units of the Franse Système international d'unités:

Meter (m) - Unit of length
Kilogram (kg) - Unit of mass
Second (s) - Unit of time
Ampere (A) - Unit of electric current
Kelvin (K) - Unit of temperature
Mole (mol) - Unit of amount of substance
Candela (cd) - Unit of luminous intensity

Combinations of these units like m/s are also considered basic SI-units, and also units that can be expressed in terms of SI-units but have their own name like: Newton (kg.m/s²) or Pascal (N/s²).

SI-units with prefixes are not considered basic SI-units.

Programming rules

The main rules are:

  • Use SI-units (without prefixes) as much as possible.
  • Variables like someLength, someTime, someVolume are assumed in SI-units.
  • Variables in non-basic SI-units like nanometer, millisecond or gallon should have explicit suffixes like someLength_nm, someTime_ms or someVolume_gallon.
  • Use of radians for angles is implicit. When using degrees use the suffix "_deg".

Secondary rules:

  • If an input interface has non-basic SI units, convert them to SI-units as soon as you read them from the interface.
  • If an output interface needs non-basic SI units, convert the from SI-units as late as possible, just before outputting them.