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
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
x | Any | Yes | — | First sample data. |
y | Any | Yes | — | Second sample data. |
nameValuePairs | Any | Variadic | — | Alpha, Dim, Tail, and Vartype options. |
Returns
| Name | Type | Description |
|---|---|---|
h | LogicalArray | Hypothesis test decision. |
p | NumericArray | P-value. |
ci | NumericArray | Confidence interval for the difference in means. |
stats | Any | Structure containing tstat, df, and sd fields. |
Returned values from ttest2 depend on how many outputs the caller requests.
Errors
| Identifier | When | Message |
|---|---|---|
RunMat:ttest2:InvalidArgument | Inputs, dimensions, tails, variance type, or significance level are malformed. | ttest2: invalid argument |
RunMat:ttest2:Internal | RunMat cannot construct ttest2 outputs. | ttest2: internal error |
How ttest2 works
xandymay 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
Dimwhen specified. - Array inputs must have the same size along all dimensions except the test dimension.
NaNvalues are omitted independently from each sample before each test.gpuArrayinputs are accepted through the host-gather compatibility path; outputs are host values.Tailaccepts"both","right", or"left";"larger"and"smaller"are accepted as compatibility aliases.Alphamust be a scalar in the open interval(0,1).- The fourth output is a struct with
tstat,df, andsdfields.
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.
Related Stats functions
Summary
binocdf · boxplot · cdf · cdfplot · chi2cdf · corr · corrcoef · corrcov · cov · cov2corr · dummyvar · ecdf · filloutliers · fitdist · geomean · grpstats · harmmean · icdf · isoutlier · kstest · kurtosis · lsline · mad · mode · nanmax · normalize · normcdf · norminv · normpdf · onehotdecode · onehotencode · pdf · prctile · quantile · refline · rmse · skewness · tabulate · tcdf · tiedrank · tinv · tpdf · wblinv
Ml
bayesopt · classify · confusionmat · crossvalind · cvpartition · fitclinear · fitctree · fitlm · kmeans · knnsearch · lasso · lassoglm · linkage · lscov · mnrfit · optimizableVariable · pdist · pdist2 · perfcurve · predict · regress · ridge · squareform · test · training · tsne
Random
binornd · bootstrp · datasample · dividerand · exprnd · gamrnd · lhsdesign · mvnrnd · normrnd · random · randsample · rng · trnd · unidrnd · unifrnd · wblrnd
Hist
Open-source implementation
Unlike proprietary runtimes, every RunMat function is open-source. Read exactly how ttest2 is executed, line by line, in Rust.
- View the source for ttest2 in Rust on GitHub
- Learn how the RunMat runtime works
- Found a bug? Open an issue with a minimal reproduction.
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.