divideVariables
Description
cs = divideVariables(
returns new climate scenario variables containing ratios of variables in the cs
,numerators
,denominators
,Name=Value
)climateScenario
object, cs
, and appends the new variables to the property
cs.IdentifierValues.Variable
. You specify the variables for the ratios
by using the numerators
and denominators
input
arguments. Use the NewVariables
name-value argument to name the new
ratio variables.
Examples
Compute the ratio of climate scenario variables contained in a climateScenario
object. The climate transition scenario data that this example uses is available from the Bank of Canada and is free of charge at http://www.bankofcanada.ca.
Load the data.
load("BankOfCanadaClimateScenarioData.mat")
data = ClimateTransitionScenarioData;
head(data)
k CL_GEOGRAPHY CL_SECTOR CL_VARIABLE CL_UNIT CL_SCENARIO CL_YEAR CL_VALUE _ ____________ _________ _______________________________ ___________________ ________________________ _______ ________ 1 Canada National Carbon price US$2014/tCO2e Baseline (2019 policies) 2020 12.106 2 Canada National Carbon price US$2014/tCO2e Below 2°C immediate 2020 12.106 3 Canada National Emissions | total GHG (scope 1) Million tonnes CO2e Baseline (2019 policies) 2020 781.04 4 Canada National Emissions | total GHG (scope 1) Million tonnes CO2e Below 2°C immediate 2020 781.04 5 Canada National Input price | Coal Index (2014 = 1) Baseline (2019 policies) 2020 1.2875 6 Canada National Input price | Coal Index (2014 = 1) Below 2°C immediate 2020 1.2875 7 Canada National Input price | Crops Index (2014 = 1) Baseline (2019 policies) 2020 1.0031 8 Canada National Input price | Crops Index (2014 = 1) Below 2°C immediate 2020 1.0031
Create a climateScenario
object.
cs = climateScenario(data, ... RegionVar="CL_GEOGRAPHY", ... VariableVar="CL_VARIABLE", ... ScenarioVar="CL_SCENARIO", ... YearVar="CL_YEAR", ... ValueVar="CL_VALUE", ... CustomIdentifiers="Sector", ... CustomIdentifierVars="CL_SECTOR", ... UnitVar="CL_UNIT");
Choose a variable to use for the numerator of the ratio. This example uses the Primary Energy
variables in the climateScenario
object, cs
, for the numerator.
First, extract the Primary Energy
variables.
indexPrimaryEnergy = contains(string(cs.IdentifierValues.Variable), "Primary Energy");
primaryEnergyVariables = string(cs.IdentifierValues.Variable(indexPrimaryEnergy));
numerator = primaryEnergyVariables;
Use the Primary Energy | Total
variable for the denominator.
denominator = "Primary Energy | Total";
Create names for the ratio variables.
marketShareVariables = primaryEnergyVariables + " Market Share";
Use divideVariables
by specifying the NewVariables
name-value argument.
cs = divideVariables(cs,numerator,denominator,NewVariables=marketShareVariables);
To display the new variables, you can query the output climateScenario
object for the ratio marketShareVariables
by using the query
function and specifying the Variable
name-value argument. Then display the first few rows.
marketShareData = query(cs,Variable=marketShareVariables); head(marketShareData)
CL_GEOGRAPHY CL_SECTOR CL_VARIABLE CL_UNIT CL_SCENARIO CL_YEAR CL_VALUE _____________ _________ _______________________________________ _____________________ ________________________ _______ _________ Canada National Primary Energy | Bioenergy Market Share Exajoules / Exajoules Baseline (2019 policies) 2020 0.0067056 Canada National Primary Energy | Bioenergy Market Share Exajoules / Exajoules Below 2°C immediate 2020 0.0067056 Canada National Primary Energy | Bioenergy Market Share Exajoules / Exajoules Below 2°C delayed 2020 0.0067056 Canada National Primary Energy | Bioenergy Market Share Exajoules / Exajoules Net-zero 2050 (1.5°C) 2020 0.0067056 United States National Primary Energy | Bioenergy Market Share Exajoules / Exajoules Baseline (2019 policies) 2020 0.020199 United States National Primary Energy | Bioenergy Market Share Exajoules / Exajoules Below 2°C immediate 2020 0.020199 United States National Primary Energy | Bioenergy Market Share Exajoules / Exajoules Below 2°C delayed 2020 0.020199 United States National Primary Energy | Bioenergy Market Share Exajoules / Exajoules Net-zero 2050 (1.5°C) 2020 0.020199
Input Arguments
Climate scenario object, specified as a climateScenario
object.
Numerators, specified as a string vector.
Denominators, specified as a string vector.
Note
If numerators
and denominators
are both
vectors, their lengths must be the same.
Name-Value Arguments
Specify optional pairs of arguments as
Name1=Value1,...,NameN=ValueN
, where Name
is
the argument name and Value
is the corresponding value.
Name-value arguments must appear after other arguments, but the order of the
pairs does not matter.
Example: cs =
divideVariables(cs,numerator,denominator,NewVariables=marketShareVariables)
returns the new variable marketShareVariables
that contains a ratio of
the numerator
and denominator
variables.
Region identifier values, specified as a string vector. By default, all the
regions are returned if you do not specify a string vector for
Region
.
Scenario identifier values, specified as a string vector. By default, all the
scenarios are returned if you do not specify a string vector for
Scenario
.
Year identifier values, specified as a numeric vector. By default, all the years
are returned if you do not specify a numeric vector for
Year
.
Names of ratio variables, specified as a string vector. The length of
NewVariables
must be
max(length(numerator),length(denominator))
.
New units of the ratio variables, specified as a string vector. By default, the
new units are derived from the numerator and denominator units. The length of
NewUnits
must be
max(length(numerator),length(denominator))
.
Names of custom identifiers, specified as a string vector containing values of
cs.CustomerIndentifiers
. CustomIdentifers
must
match an identifier property contained in cs.CustomIdentifiers
. For
example, if "Sector"
is a custom identifier for the property
cs.CustomIdentifier
, then cs =
divideVariables(cs,"Primary Energy | Bioenergy","Primary Energy |
Total",NewVariables="Primary Energy | Bioenergy Market
Share",Sector="National")
computes the market share of bioenergy by taking
the ratio of bioenergy to total energy for the national sector.
Version History
Introduced in R2025a
See Also
climateScenario
| plot
| query
| groupRegions
| sumVariables
| shockVariables
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)