taguchiDOE
Description
A taguchiDOE object contains a Taguchi design for an experiment.
      Use a Taguchi design when you want to identify controllable factors that minimize the
      contribution of noise factors to a process. You can use the taguchiTypes
      function to list the valid Taguchi design types for a specified set of factors and levels. For
      more information, see Taguchi Designs.
Creation
Syntax
Description
dtag = taguchiDOE(levels1,levels2,...,levelsN,type)
dtag = taguchiDOE(___,Name=Value)
Input Arguments
Number of factors in the design, specified as a positive integer. The valid values
              of n depend on the value of type. For more
              information, see the DesignType
              property description.
Example: 4
Data Types: single | double
Taguchi design type, specified as a string scalar or character vector. The valid
              values of type depend on the value of n. You
              can use the taguchiTypes function to return a list of valid Taguchi design types for
              a set of factors and levels. For more information, see the DesignType
              property description. 
Example: "L4"
Data Types: char | string
Factor level bounds, specified as a 2-by-n matrix, where
                n is the number of factors in the design. Each column of
                bounds corresponds to a factor. The first row of
                bounds contains the lowest levels for the factors, and the
              second row contains the highest levels. If you specify NumLevelsPerFactor, each factor has
                NumLevelsPerFactor levels equally spaced between
                bounds. Otherwise, each factor has two levels.
Example: [0 0.1 10; 5 0.7 50]
Data Types: single | double
Factor levels, specified as a numeric, logical, string, or categorical vector, or
              a cell array of character vectors. levels1,levels2,...,levelsN
              must contain levels for each factor in the design. The software ignores any nonunique
              level values that you specify for an individual factor.
Example: ["cohorta","cohortb"],[0,0.25,0.5],["drug1","drug2","drug3"]
Data Types: single | double | logical | char | string | cell | categorical
Factor information, specified as a structure array returned by the taguchiTypes function.
Data Types: struct
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: taguchiDOE(4,"L8",FactorNames=["A","B","C","D"]) specifies
          a four-factor L8 Taguchi design with factors named "A",
            "B", "C", and "D". 
Categorical factors list, specified as one of the values in this table.
| Value | Description | 
|---|---|
| Vector of positive integers | Each entry in the vector is an index value indicating that the corresponding factor is categorical. The index values are between 1 and n, where n is the number of factors in the design. | 
| Logical vector | A  | 
| String vector or cell array of character vectors | Each element in the array is the name of a factor. The names must
                                match the entries in FactorNames. | 
| "all" | All factors are categorical. | 
By default, taguchiDOE treats all nonnumeric factors as
            categorical.
Example: CategoricalFactors="all"
Data Types: single | double | logical | char | string | cell
Factor names, specified as a string vector or a cell array of
                                    character vectors. The number of unique values in
                                                FactorNames must equal the
                                    number of factors in the design. The default value for
                                                FactorNames is
                                                ["Factor1","Factor2",..."FactorN"].
If you pass levels for a factor using variable names in the input
                                    argument levels1,levels2,...,levelsN and do
                                    not specify FactorNames, taguchiDOE
                                    assigns the workspace variable name to the corresponding
                                    factor.
Example: FactorNames=["compound","quantity"]
Data Types: char | string | cell
Experiment model, specified as one of the following values.
- A character vector or string scalar with the model name. - Value - Model Description - "linear"- The model contains an intercept and linear term for each factor. - "constant"- The model contains only a constant (intercept) term. - "interactions"- The model contains an intercept, a linear term for each factor, and all products of pairs of distinct factors (no squared terms). - "purequadratic"- The model contains an intercept term, and linear and squared terms for each factor. - "quadratic"- The model contains an intercept term, linear and squared terms for each factor, and all products of pairs of distinct factors. - "scheffe-linear"- The model contains a linear term for each factor and does not include an intercept term. - "scheffe-quad"- The model is given by the formula: - "scheffe-special-cubic"- The model is given by the formula: - "poly- ijk"- The model is a polynomial with all terms up to degree - iin the first factor, degree- jin the second factor, and so on. Specify the maximum degree for each factor by using numerals 0 though 9. The model contains interaction terms, but the degree of each interaction term does not exceed the maximum value of the specified degrees. For example,- "poly13"has an intercept and x1, x2, x22, x23, x1*x2, and x1*x22 terms, where x1 and x2 are the first and second factors, respectively.- In the above table, each xi corresponds to the ith factor in the design, and bi, bij, bijk, and dij are coefficients for the model terms. 
- A character vector or string scalar formula in Wilkinson Notation. The factor names in the formula must be factor names specified by the - FactorNamesname-value argument.
- A t-by-n terms matrix, where t is the number of terms and n is the number of factors in the design. A terms matrix is convenient when the number of factors is large and you want to generate the terms programmatically. For more information about terms matrices, see Terms Matrix. 
ModelSpecification does not include a response
                variable.
Example: ModelSpecification="Factor1 + Factor2 +
                Factor3"
Data Types: single | double | char | string
Noise factors list, specified as one of the
                following values. If you specify NoiseFactors, you must also
                specify NoiseDesignType.
| Value | Description | 
|---|---|
| Vector of positive integers | Each entry in the vector is an index value indicating that the corresponding factor is a noise factor. The index values are between 1 and n, where n is the number of factors in the design. | 
| Logical vector | A  | 
| String vector or cell array of character vectors | Each element in the array is the name of a factor. The names must
                          match the entries in FactorNames. | 
Example: NoiseFactors=[1 2]
Data Types: single | double | logical | char | string | cell
Taguchi design type for the noise factors, specified as a string scalar or
                character vector. If you specify NoiseDesignType, you must also
                specify NoiseFactors. The valid values of NoiseDesignType
                depend on the number of levels in the noise factors. You can use the taguchiTypes function to return a list of valid Taguchi design types.
                For more information, see the DesignType
                property description. 
Example: NoiseDesignType="L4"
Data Types: char | string
Number of levels for each factor, specified as a positive integer or a vector of
                positive integers. NumLevelsPerFactor must have an element for
                each factor in the design. If you specify NumLevelsPerFactor as
                a positive integer, the software assigns NumLevelsPerFactor
                levels to each factor.
Example: NumLevelsPerFactor=[2,2,4]
Data Types: single | double
Properties
This property is read-only.
This property is read-only after object creation.
Categorical factors, specified as a vector of indices indicating which factors are
            categorical. This property is set by the CategoricalFactors
            name-value argument when you create the taguchiDOE object.
Data Types: double
This property is read-only.
 Generated design points, represented as a table. Each column of
                Design corresponds to a factor in the design, and each row
            corresponds to a point.
Data Types: table
This property is read-only after object creation.
Factor levels, represented as a cell array with one element per factor. The software
            uses the value of levels1,levels2,...,levelsN or dinfo to set
              Levels. Otherwise, the software sets the elements of
              Levels to have n equally spaced levels in the
            range specified by bounds (or [-1 1] if you do
            not specify bounds). The value of n is
            determined as follows:
- If you do not specify - ModelSpecificationor- NumLevelsPerFactor, then n equals 2.
- If you specify - NumLevelsPerFactor, then n equals- NumLevelsPerFactor.
- If you specify - ModelSpecificationand do not specify- NumLevelsPerFactor, then n equals- 1+ the maximum order of the- ModelSpecificationmodel.
Data Types: cell
This property is read-only.
Experiment model, specified as a formula in Wilkinson Notation.
                ModelSpecification indicates the model you want to fit with the
            specified design. ModelSpecification does not include the response
            variable.
This property is set by the ModelSpecification
            name-value argument when you create the taguchiDOE object.
Data Types: string
This property is read-only after object creation.
Noise factors list, represented as a vector of indices indicating which factors are
            noise factors. This property is set by the NoiseFactors
            name-value argument when you create the taguchiDOE object.
Data Types: single | double
This property is read-only after object creation.
Taguchi design type, represented as a string scalar or a string vector. When
              DesignType is a string scalar, it consists of
              "L" and a number that corresponds to the number of points in the
            Taguchi design. If you specify NoiseDesignType, then DesignType is a string vector
            containing the non-noise design type and the noise design type. This property is set by
            the type input
            argument and NoiseDesignType name-value argument when you create
            the taguchiDOE object.
Each design type can support up to a maximum number of factors with levels as
            described in the following table. An empty table cell indicates that the design does not
            support that factor type in combination with the other factor types in the same row. For
            example, the "L8" design can support up to 7 two-level factors, or a
            combination of up to 4 two-level factors and 1 four-level factor. This design does not
            support any five-level or six-level factors.
| Value | Two-Level Factors | Three-Level Factors | Four-Level Factors | Five-Level Factors | Six-Level Factors | 
|---|---|---|---|---|---|
| "L4" | 3 | ||||
| "L8" | 7 | ||||
| "L8" | 4 | 1 | |||
| "L9" | 4 | ||||
| "L12" | 11 | ||||
| "L16" | 15 | ||||
| "L16" | 12 | 1 | |||
| "L16" | 9 | 2 | |||
| "L16" | 6 | 3 | |||
| "L16" | 3 | 4 | |||
| "L16" | 5 | ||||
| "L18" | 1 | 7 | |||
| "L18" | 6 | 1 | |||
| "L25" | 6 | ||||
| "L27" | 13 | ||||
| "L32" | 31 | ||||
| "L32" | 1 | 9 | |||
| "L36" | 11 | 12 | |||
| "L36" | 3 | 13 | |||
| "L50" | 1 | 11 | |||
| "L54" | 1 | 25 | |||
| "L64" | 21 | ||||
| "L64" | 31 | ||||
| "L81" | 40 | 
Data Types: string
Object Functions
Examples
Generate a Taguchi L4 design with two factors.
dtag = taguchiDOE(2,"L4")dtag = 
  taguchiDOE with properties:
                Design: [4×2 table]
    ModelSpecification: "1 + Factor1 + Factor2"
                Levels: {[-1 1]  [-1 1]}
    CategoricalFactors: []
          NoiseFactors: []
            DesignType: "L4"
dtag is a taguchiDOE object that contains information about the generated Taguchi design. The output includes the size of the table containing the design runs, and the model for the design. By default, the levels for each factor are –1 and 1.
Display the design table.
dtag.Design
ans=4×2 table
    Factor1    Factor2
    _______    _______
      -1         -1   
      -1          1   
       1         -1   
       1          1   
The L4 design table contains four runs with values for the two factors.
Generate a Taguchi L4 design and specify the factor bounds for the design points.
dtag = taguchiDOE([10 15 20; 15 20 25],"L4")dtag = 
  taguchiDOE with properties:
                Design: [4×3 table]
    ModelSpecification: "1 + Factor1 + Factor2 + Factor3"
                Levels: {[10 15]  [15 20]  [20 25]}
    CategoricalFactors: []
          NoiseFactors: []
            DesignType: "L4"
dtag is a taguchiDOE object that contains information about the generated Taguchi L4 design. By default, the levels for the factors are the same as the specified bounds.
Generate data for the health status of 50 patients using the randi function. Create variables containing levels for patient age and smoking status.
healthStatus = randi([1 3],50,1); age = [20 30 40]; smoker = ["Y", "N"];
Generate a Taguchi L18 design using the unique values in the variables age, smoker, and healthStatus as the factor levels.
dtag = taguchiDOE(age,smoker,healthStatus,"L18")dtag = 
  taguchiDOE with properties:
                Design: [18×3 table]
    ModelSpecification: "1 + age + smoker + healthStatus"
                Levels: {[20 30 40]  ["N"    "Y"]  [1 2 3]}
    CategoricalFactors: 2
          NoiseFactors: []
            DesignType: "L18"
dtag is a taguchiDOE object that contains information about the generated Taguchi design.
Display the design table.
dtag.Design
ans=18×3 table
    age    smoker    healthStatus
    ___    ______    ____________
    20      "N"           1      
    20      "N"           2      
    20      "N"           3      
    20      "Y"           1      
    20      "Y"           2      
    20      "Y"           3      
    30      "N"           1      
    30      "N"           2      
    30      "N"           3      
    30      "Y"           1      
    30      "Y"           2      
    30      "Y"           3      
    40      "N"           1      
    40      "N"           2      
    40      "N"           3      
    40      "Y"           1      
      ⋮
The design table displays the factor values for the 18 runs in the Taguchi L18 design.
Use the taguchiTypes function to return a vector of valid Taguchi design types for four factors. Additionally return a structure containing information about the factors.
[types,dinfo] = taguchiTypes(4)
types = 1×3 string
    "L8"    "L12"    "L16"
dinfo = struct with fields:
                Levels: {[-1 1]  [-1 1]  [-1 1]  [-1 1]}
    CategoricalFactors: []
           FactorNames: ["Factor1"    "Factor2"    "Factor3"    "Factor4"]
    ModelSpecification: "linear"
    NumLevelsPerFactor: [2 2 2 2]
          NoiseFactors: []
          ModelSpecSet: 0
The valid types for a Taguchi design with 4 factors are "L8", "L12", and "L16". By default, each factor contains levels –1 and 1.
Create a four-factor Taguchi L12 design using the factor information contained in the structure returned by taguchiTypes. Display the design table.
dtag = taguchiDOE(dinfo,"L12");
dtag.Designans=12×4 table
    Factor1    Factor2    Factor3    Factor4
    _______    _______    _______    _______
      -1         -1         -1         -1   
      -1         -1         -1         -1   
      -1         -1          1          1   
      -1          1         -1          1   
      -1          1          1         -1   
      -1          1          1          1   
       1         -1          1          1   
       1         -1          1         -1   
       1         -1         -1          1   
       1          1          1         -1   
       1          1         -1          1   
       1          1         -1         -1   
Generate an inner Taguchi L18 design for two factors with levels [-1,1] and [1,2,3], respectively. Add an outer Taguchi L4 design that has a single noise factor with levels [1,2]. The inner design contains controllable factors, while the outer design contains a noise factor that is present in the laboratory.
dtag=taguchiDOE([-1,1],[1,2,3],[1,2],"L18", ... NoiseDesignType="L4",NoiseFactors=3)
dtag = 
  taguchiDOE with properties:
                Design: [72×3 table]
    ModelSpecification: "1 + Factor1 + Factor2"
                Levels: {[-1 1]  [1 2 3]  [1 2]}
    CategoricalFactors: []
          NoiseFactors: 3
            DesignType: ["L18"    "L4"]
dtag is a taguchiDOE object that contains information about the generated Taguchi design. The output includes the size of the table containing the design runs, and the model for the design.
Display the design.
dtag.Design
ans=72×3 table
    Factor1    Factor2    Factor3
    _______    _______    _______
      -1          1          1   
      -1          1          1   
      -1          1          2   
      -1          1          2   
      -1          1          1   
      -1          1          1   
      -1          1          2   
      -1          1          2   
      -1          1          1   
      -1          1          1   
      -1          1          2   
      -1          1          2   
      -1          2          1   
      -1          2          1   
      -1          2          2   
      -1          2          2   
      ⋮
More About
A terms matrix T is a
            t-by-n matrix specifying the terms in a model,
        where t is the number of terms, and n is the number of
        factors in the design. The value of T(i,j) is the exponent of variable
            j in term i.
For example, suppose that a design includes three factors x1,
            x2, and x3. Each row of T
        represents one term:
- [0 0 0]— Constant term or intercept
- [0 1 0]—- x2; equivalently,- x1^0 * x2^1 * x3^0
- [1 0 1]—- x1*x3
- [2 0 0]—- x1^2
- [0 1 2]—- x2*(x3^2)
References
[1] Krishnaian, K., and P. Shahabudeen. Applied Design of Experiments and Taguchi Methods. New Delhi: PHI Learning Private Limited, 2012.
Version History
Introduced in R2025a
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.
Sélectionner un site web
Choisissez un site web pour accéder au contenu traduit dans votre langue (lorsqu'il est disponible) et voir les événements et les offres locales. D’après votre position, nous vous recommandons de sélectionner la région suivante : .
Vous pouvez également sélectionner un site web dans la liste suivante :
Comment optimiser les performances du site
Pour optimiser les performances du site, sélectionnez la région Chine (en chinois ou en anglais). Les sites de MathWorks pour les autres pays ne sont pas optimisés pour les visites provenant de votre région.
Amériques
- 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)