MATLAB 帮助中心
数据集的四分位差
r = iqr(A)
r = iqr(A,"all")
r = iqr(A,dim)
r = iqr(A,vecdim)
[r,q] = iqr(___)
r = iqr(A) 返回输入数据 A 中元素的四分位差值。
r
A
如果 A 是向量,则 r 是 A 中包含的数据的第 75 个百分位数与第 25 个百分位数之间的差值。
如果 A 是矩阵,则 r 是行向量,其中包含 A 的每列中采样数据的第 75 个百分位数与第 25 个百分位数之间的差值。
如果 A 是多维数组,则 r 包含沿其大小不等于 1 的第一个数组维度计算的四分位差值。r 沿此维度的大小为 1,而所有其他维度的大小与输入数据保持相同。
示例
r = iqr(A,"all") 返回 A 中所有元素的四分位差值。
r = iqr(A,dim) 沿维度 dim 执行运算。例如,如果 A 是矩阵,则 iqr(A,2) 对每行中的元素执行运算。
dim
iqr(A,2)
r = iqr(A,vecdim) 沿在向量 vecdim 中指定的维度进行运算。例如,如果 A 是矩阵,则 iqr(A,[1 2]) 对 A 的所有元素执行运算,因为矩阵的每个元素都包含在由维度 1 和 2 定义的数组切片中。
vecdim
iqr(A,[1 2])
对于上述任何语法,[r,q] = iqr(___) 还返回输入数据 A 中元素的第一个四分位数和第三个四分位数。第一个四分位数是输入数据的第 25 个百分位数,第三个四分位数是第 75 个百分位数。 (自 R2024a 起)
q
全部折叠
生成一个由正态分布随机数据组成的 4×4 矩阵。
rng default % for reproducibility A = randn(4,4)
A = 4×4 0.5377 0.3188 3.5784 0.7254 1.8339 -1.3077 2.7694 -0.0631 -2.2588 -0.4336 -1.3499 0.7147 0.8622 0.3426 3.0349 -0.2050
计算每列数据的四分位差。
r = 1×4 2.2086 1.2013 2.5969 0.8541
计算每行数据的四分位差。
r2 = iqr(A,2)
r2 = 4×1 1.7237 2.9870 1.9449 1.8797
通过指定 "all" 或 vecdim 输入,计算多维数组在多个维度上的四分位差。
all
创建一个 3×4×2 数组。
A = reshape(1:24,[3 4 2])
A = A(:,:,1) = 1 4 7 10 2 5 8 11 3 6 9 12 A(:,:,2) = 13 16 19 22 14 17 20 23 15 18 21 24
计算 A 中所有值的四分位差。
rall = iqr(A,"all")
rall = 12
计算 A 的每页的四分位差。指定第一个和第二个维度作为沿其计算四分位差的运算维度。
rPage = iqr(A,[1 2])
rPage = rPage(:,:,1) = 6 rPage(:,:,2) = 6
rPage(1,1,1) 是 A(:,:,1) 中所有元素的四分位差。
rPage(1,1,1)
A(:,:,1)
通过将第二个和第三个维度指定为运算维度,计算每个 A(i,:,:) 切片中元素的四分位差。
A(i,:,:)
rRow = iqr(A,[2 3])
rRow = 3×1 12 12 12
rRow(3) 是 A(3,:,:) 中所有元素的四分位差。
rRow(3)
A(3,:,:)
自 R2024a 起
除了每列数据的四分位差外,还计算第一个和第三个四分位数。q 的每列中的第一个元素是输入数据的第一个四分位数,第二个元素是第三个四分位数。
[r,q] = iqr(A)
q = 2×4 -0.8606 -0.8706 0.7098 -0.1340 1.3480 0.3307 3.3067 0.7201
输入数据,指定为数组。
数据类型: double | single | duration | datetime (自 R2026a 起)
double
single
duration
datetime
沿其运算的维度,指定为正整数标量。如果不指定维度,则默认值是大小不等于 1 的第一个数组维度。
以输入矩阵 A 为例:
r = iqr(A,1) 计算 A 中列的四分位差。由于 1 是指定的运算维度,因此 r 的行数等于 A 中的列数。
r = iqr(A,1)
r = iqr(A,2) 计算 A 中行的四分位差。由于 2 是指定的运算维度,因此 r 的列数等于 A 中的行数。
r = iqr(A,2)
维度 dim 表示其长度减至 1 的 r 的维度。size(r,dim) 为 1,而输出 r 的所有其他维度的大小与输入数据保持相同。
size(r,dim)
数据类型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
int8
int16
int32
int64
uint8
uint16
uint32
uint64
要沿其运算的维度组成的向量,指定为正整数向量。每个元素代表输入数据的一个维度。
输出 r 在指定运算维度中的大小为 1。r 在所有其他维度中的长度与输入数据保持相同。
假设有一个 2×3×3 输入数组 A。由于 1 和 2 是运算维度,iqr(A,[1 2]) 返回 1×1×3 数组。输出数组的每页包含 A 的对应页上元素的四分位差。
四分位差,以数组形式返回。
第一个和第三个四分位数,以数组形式返回。
q 和 r 的大小相同,但 q 沿最小运算维度的大小应为 2。沿该维度,第一个元素是输入数据的第一个四分位数,第二个元素是第三个四分位数。
全部展开
用法说明和限制:
不支持 datetime 输入数据。
不支持 "all" 和 vecdim 输入。
"all"
dim 输入参量必须为编译时常量。
如果不指定 dim 输入参量,生成的代码中的工作(或运算)维度可能不同。因此,可能会发生运行时错误。有关详细信息,请参阅在默认维度选择方面与 MATLAB 不兼容 (MATLAB Coder)。
请参阅“C/C++ 代码生成”部分中的用法说明和限制。同样的用法说明和限制也适用于 GPU 代码生成。
iqr 函数完全支持 GPU 数组。要在 GPU 上运行该函数,请将输入数据指定为 gpuArray (Parallel Computing Toolbox)。有关详细信息,请参阅在 GPU 上运行 MATLAB 函数 (Parallel Computing Toolbox)。
iqr
gpuArray
iqr 函数支持分布式数组输入,但有以下用法说明和限制:
不支持持续时间和 datetime 输入。
有关详细信息,请参阅使用分布式数组运行 MATLAB 函数 (Parallel Computing Toolbox)。
您可以计算 datetime 数组中数据的四分位差。
指定第二个输出参量 q 以返回输入数据的第一个四分位数和第三个四分位数。沿最小运算维度的 q 的第一个元素是输入数据的第一个四分位数,沿最小运算维度的 q 的第二个元素是第三个四分位数。
iqr 函数由于输入解析更快而提高了性能。当输入解析在计算时间中占比很大时,性能改进最为显著。这种情况出现在:
输入数据的大小很小时。
计算沿默认运算维度进行时。
例如,以下代码计算一个包含 4000 个元素的矩阵的四分位差。该代码比上一版本大约快 4.67 倍。
function timingIqr A = rand(400,10); for k = 1:3e3 r = iqr(A); end end
大致的执行时间是:
R2022a:0.98 秒
R2022b:0.21 秒
代码是在运行 Windows® 10 的 Intel® Xeon® CPU E5-1650 v4 @ 3.60 GHz 测试系统上使用 timeit 函数进行计时的:
timeit
timeit(@timingIqr)
以前,iqr 需要 Statistics and Machine Learning Toolbox™。
std | var | prctile | boxchart
std
var
prctile
boxchart
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.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处