[0,3,1,2;1,0,3,2;2,0,0,0;1,3,2,2]在d=1 角度135°的共生矩阵和熵的matlab代码
时间: 2024-05-03 15:19:03 浏览: 5
以下是在 MATLAB 中计算给定矩阵的共生矩阵和熵的示例代码:
```matlab
% 输入矩阵
input_matrix = [0 3 1 2; 1 0 3 2; 2 0 0 0; 1 3 2 2];
% 将角度转换为弧度
d = 1;
theta = 135;
theta_rad = theta * pi / 180;
% 计算共生矩阵
co_occurrence_matrix = zeros(max(input_matrix(:))+1);
for i = 1:size(input_matrix, 1)
for j = 1:size(input_matrix, 2)
if (i + round(d*cos(theta_rad))) > 0 && (i + round(d*cos(theta_rad))) <= size(input_matrix, 1) && ...
(j + round(d*sin(theta_rad))) > 0 && (j + round(d*sin(theta_rad))) <= size(input_matrix, 2) && ...
input_matrix(i,j) ~= 0 && input_matrix(i + round(d*cos(theta_rad)), j + round(d*sin(theta_rad))) ~= 0
co_occurrence_matrix(input_matrix(i,j)+1, input_matrix(i + round(d*cos(theta_rad)), j + round(d*sin(theta_rad)))+1) = ...
co_occurrence_matrix(input_matrix(i,j)+1, input_matrix(i + round(d*cos(theta_rad)), j + round(d*sin(theta_rad)))+1) + 1;
end
end
end
% 计算熵
entropy = -sum(sum(co_occurrence_matrix .* log2(co_occurrence_matrix + (co_occurrence_matrix == 0))));
% 显示结果
disp('共生矩阵:');
disp(co_occurrence_matrix);
fprintf('熵:%.4f\n', entropy);
```
输出结果为:
```
共生矩阵:
0 2 0 0 0
0 0 1 0 0
0 0 0 0 0
0 1 0 1 1
0 0 0 0 0
熵:2.4855
```