早教吧作业答案频道 -->其他-->
谁能帮我看下这个程序问题出在哪?function[variancebsbkbnsigma]=trait(I)n=size(I,1)*size(I,2);%n为矩阵中元素个数.m=sum(I(:))/n;%m为灰度平均值,是一个标量,I是图像矩阵A=reshape(I,1,n);p=[];fori=0:255%p从0到
题目详情
谁能帮我看下这个程序问题出在哪?
function [variance bs bk bn sigma]=trait(I)
n=size(I,1)*size(I,2); %n为矩阵中元素个数.
m=sum(I(:))/n; %m为灰度平均值,是一个标量,I是图像矩阵
A=reshape(I,1,n);
p=[];
for i=0:255 %p从0到L-1的各个灰度出现的频率,是一个向量
for j=1:n %获取灰度i的像素个数
s=0;
if(A(j)==i)
s=s+1;
end
end
p=[p,s./n];
variance=0; %方差
variance=variance+(i-m).^2.*p(i+1);
bs0=0; %偏斜度
bs0=bs0+(i-m).^3*p(i+1);
bs=bs0./(sqrt(variance)).^3;
bk0=0; %突出度
bk0=bk0+(i-m).^4*p(i+1);
bk=bk0./(variance).^2;
bn=0; %能量
bn=bn+p(i+1)*p(i+1);
sigma=0; %绝对值
sigma=sigma+abs(i-m)*p(i+1);
end
function [variance bs bk bn sigma]=trait(I)
n=size(I,1)*size(I,2); %n为矩阵中元素个数.
m=sum(I(:))/n; %m为灰度平均值,是一个标量,I是图像矩阵
A=reshape(I,1,n);
p=[];
for i=0:255 %p从0到L-1的各个灰度出现的频率,是一个向量
for j=1:n %获取灰度i的像素个数
s=0;
if(A(j)==i)
s=s+1;
end
end
p=[p,s./n];
variance=0; %方差
variance=variance+(i-m).^2.*p(i+1);
bs0=0; %偏斜度
bs0=bs0+(i-m).^3*p(i+1);
bs=bs0./(sqrt(variance)).^3;
bk0=0; %突出度
bk0=bk0+(i-m).^4*p(i+1);
bk=bk0./(variance).^2;
bn=0; %能量
bn=bn+p(i+1)*p(i+1);
sigma=0; %绝对值
sigma=sigma+abs(i-m)*p(i+1);
end
▼优质解答
答案和解析
d hot(struct stu a[5]);
struct stu
{
int num;
char *name;
int score[3];
}boy[5];
void main()
{
int i,j;
for(i=0;i<5;i++)
{
printf("请输入学生的学号:");
scanf("%d",&boy[i].num);
printf("请输入学生的姓名:");
scanf("%s",boy[i].name);
printf("请输入三门该生成绩:");
for(j=0;j<3;j++)
scanf("%d",&boy[i].score[j]);
}
hot(boy);
// return 0;
}
void hot(struct stu a[5])
{
int i,j;
for(i=0;i<5;i++)
printf("学号为:%d",a[i].num);
printf("姓名为:%s",a[i].name);
for(j=0;j<3;j++)
printf("成绩为%d",a[i].score[j]);
}
这是我修改后的程序...你仔细看看和你的有哪些不同的!
你的错误主要有以下几大点:
1.在void main()中.你出现了return 0语句.这是不对的.void说明无返回值..
2.hot(boy); 函数调用时,不必再次输入类型名!而且...形参以"数组"的形式给出(事实上是指针形式),实参必须要传递地址.你原来的boy[5]是元素!
3.在最后hot函数定义中...下面应该是a[i].XX,而不是boy[i].XX
4.在函数中的类型.是struct stu.不是struct std.
这位兄弟..你给的分太少了...应该不会有人这么费力的为你解答吧!呵呵 ...!
struct stu
{
int num;
char *name;
int score[3];
}boy[5];
void main()
{
int i,j;
for(i=0;i<5;i++)
{
printf("请输入学生的学号:");
scanf("%d",&boy[i].num);
printf("请输入学生的姓名:");
scanf("%s",boy[i].name);
printf("请输入三门该生成绩:");
for(j=0;j<3;j++)
scanf("%d",&boy[i].score[j]);
}
hot(boy);
// return 0;
}
void hot(struct stu a[5])
{
int i,j;
for(i=0;i<5;i++)
printf("学号为:%d",a[i].num);
printf("姓名为:%s",a[i].name);
for(j=0;j<3;j++)
printf("成绩为%d",a[i].score[j]);
}
这是我修改后的程序...你仔细看看和你的有哪些不同的!
你的错误主要有以下几大点:
1.在void main()中.你出现了return 0语句.这是不对的.void说明无返回值..
2.hot(boy); 函数调用时,不必再次输入类型名!而且...形参以"数组"的形式给出(事实上是指针形式),实参必须要传递地址.你原来的boy[5]是元素!
3.在最后hot函数定义中...下面应该是a[i].XX,而不是boy[i].XX
4.在函数中的类型.是struct stu.不是struct std.
这位兄弟..你给的分太少了...应该不会有人这么费力的为你解答吧!呵呵 ...!
看了 谁能帮我看下这个程序问题出在...的网友还看了以下:
矩阵特征值三阶方阵A的特征值依次为1,2,-3,A*是A的伴随矩阵,E是三阶单位矩阵,求矩阵A*+ 2020-04-13 …
急求一个C++解矩阵的程序有一个矩阵方程a11a12a13u1b1a21a22a23Xu2b2a3 2020-05-21 …
如何用计算器求矩阵特征值用的是一般的科学计算器——789SGA佳能可以求逆矩阵、矩阵行列式值、矩阵 2020-06-10 …
如何用计算器求矩阵特征值用的是一般的科学计算器——789SGA佳能可以求逆矩阵、矩阵行列式值、矩阵 2020-06-10 …
矩阵特征值特征向量对于矩阵A,若A为降秩矩阵,则至少有一个特征值为0.若R(A)=r,则A至少有n 2020-06-16 …
一道高等代数关于迹Tr的问题(1)证明,若一复方阵的所有特征值全为0,则A为幂零矩阵;(2)证明对 2020-06-19 …
matlab求解矩阵方程,兄弟们帮帮小弟吧设有矩阵A和B(1)求的秩、行列式、迹、逆(若存在)、行 2020-08-02 …
标准差和平均差的共同点……急A两者都是以平均数为中心来测定总体各单位标志值的离散程度B两者在反映总 2020-08-03 …
请问几个关于矩阵特征值的基本问题1、若矩阵A的特征值为p则xA的特征值为(x为一常数),问题其实就是 2020-11-17 …
求一份C语言做的数字螺旋矩阵的程序请将螺旋矩阵存放在n*n的二维数组中,并将其打印输出。数字螺旋矩阵 2020-12-31 …