hist改变edge边界MATLAB
时间: 2024-02-06 14:09:27 浏览: 103
您可以使用MATLAB中的函数`histedge`来修改直方图的边界。`histedge`函数的语法如下:
```
[n,edges] = histedge(x,edges)
```
其中,`x`是数据向量,`edges`是指定的边界向量。`histedge`函数将返回新的边界向量和相应的直方图计数。
例如,假设您有一个数据向量`x`,并且您想要将直方图的边界从`[-2, 2]`更改为`[-3, 3]`。您可以使用以下代码:
```
x = randn(1000,1); % 生成随机数据
edges = linspace(-2,2,11); % 原始边界
[n,edges] = histcounts(x,edges); % 计算原始直方图
new_edges = linspace(-3,3,13); % 新边界
new_n = zeros(size(new_edges)-1); % 初始化新直方图计数
for i = 1:length(edges)-1
idx = find(new_edges >= edges(i) & new_edges <= edges(i+1));
new_n(idx) = new_n(idx) + n(i);
end
bar(new_edges(1:end-1),new_n) % 绘制新直方图
```
在上面的代码中,我们首先使用`histcounts`函数计算原始的直方图计数和边界。然后,我们定义新的边界向量`new_edges`,并使用一个循环来将原始直方图计数映射到新的边界上。最后,我们绘制新的直方图。
阅读全文