ttest2 — Perform a two-sample Student's t-test.

ttest2(x,y) tests whether two independent samples have equal means. It supports the default equal-variance test and Welch's unequal-variance test through "Vartype","unequal".

Syntax

h = ttest2(x, y)
h = ttest2(x, y, Name, Value)
[h, p] = ttest2(___)
[h, p, ci, stats] = ttest2(___)

Inputs

NameTypeRequiredDefaultDescription
xAnyYesFirst sample data.
yAnyYesSecond sample data.
nameValuePairsAnyVariadicAlpha, Dim, Tail, and Vartype options.

Returns

NameTypeDescription
hLogicalArrayHypothesis test decision.
pNumericArrayP-value.
ciNumericArrayConfidence interval for the difference in means.
statsAnyStructure containing tstat, df, and sd fields.

Returned values from ttest2 depend on how many outputs the caller requests.

Errors

IdentifierWhenMessage
RunMat:ttest2:InvalidArgumentInputs, dimensions, tails, variance type, or significance level are malformed.ttest2: invalid argument
RunMat:ttest2:InternalRunMat cannot construct ttest2 outputs.ttest2: internal error

How ttest2 works

  • x and y may be numeric or logical vectors, matrices, or N-D arrays.
  • Vector inputs are treated as single samples and may have different lengths.
  • Array inputs are tested along the first nonsingleton dimension by default, or along Dim when specified.
  • Array inputs must have the same size along all dimensions except the test dimension.
  • NaN values are omitted independently from each sample before each test.
  • gpuArray inputs are accepted through the host-gather compatibility path; outputs are host values.
  • Tail accepts "both", "right", or "left"; "larger" and "smaller" are accepted as compatibility aliases.
  • Alpha must be a scalar in the open interval (0,1).
  • The fourth output is a struct with tstat, df, and sd fields.

Examples

Default equal-variance two-sample t-test

[h,p,ci,stats] = ttest2([1;2;3;4], [2;4;6;8])

Welch one-sided test

[h,p] = ttest2(x, y, "Vartype", "unequal", "Tail", "left")

Test rows independently

h = ttest2(A, B, "Dim", 2)

Using ttest2 with coding agents

Open a RunMat example with live inputs, then ask the agent to explain how ttest2 changes the result.

Run a small ttest2 example, explain the result, then change one input and compare the output.

FAQ

Does ttest2 implement Welch's test?

Yes. Pass "Vartype","unequal" to compute the unequal-variance test with Satterthwaite degrees of freedom.

What happens when a sample has fewer than two finite observations?

The corresponding test returns h = false and NaN numeric outputs.

Open-source implementation

Unlike proprietary runtimes, every RunMat function is open-source. Read exactly how ttest2 is executed, line by line, in Rust.

About RunMat

RunMat is an open-source runtime that executes MATLAB-syntax code blazing on any GPU. It is licensed under the Apache 2.0 license.

  • RunMat automatically optimizes your math for GPU execution on Apple, Nvidia, and AMD hardware. No code changes needed. Simulations that took hours now take minutes.
  • Start running code in seconds. RunMat runs in the browser, on the desktop, or from the CLI. No license server, no IT ticket.

Getting started · Benchmarks · Pricing

Download RunMat

Download RunMat for full performance, or use RunMat in your browser for zero setup.