通过函数调用方式编写程序,计算n*n矩阵周边元素绝对值之和

如题所述

有时候我们在使用matlab的时候,想求一个矩阵周边元素绝对值之和,具体方法为:

1、第一步在我们的电脑上打开matlab,点击命令行窗口。

2、在命令行窗口中输入A = [ 1 2 3 4;-1 -2 -3 -2;1 0 -1 1]来创建一个A矩阵,按回车键,将A变量存储到系统中。

3、通过“sum(sum(abs(A)))”代码来求A矩阵所有元素的绝对值之和,对于二维矩阵需要使用两次sum函数才能求得所有元素之和,详细可以看sum函数的说明。

4、按回车键之后,可以看到已经计算出了A矩阵所有元素的绝对值之和为21。

5、也可以再创建一个B矩阵来计算一下,B=[-2 -3 -4;-10 -12 -15],按回车键。

6、输入“y=sum(abs(B));y2=sum(y)”的形式也可以求得B矩阵所有元素的绝对值之和,按回车键可以看到结果为46。

注意事项:

MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-10-14
的标题,这个很复杂啊。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。这。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。我也考试。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。我不会的。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。
第2个回答  2012-10-08
用c语言还是matlab?
用c的话,先把矩阵存在n*n数组a[][]里,再写个求和函数
float sum_edge(float *a)
{
int i;
float sum = 0;
for(i=n-1;i;i--)
sum += abs(a[0][i]); //加第1行的所有元素
for(i=n-1;i;i--)
sum += abs(a[n-1][i]); //加第n行的所有元素
for(i=1;i<n-2;i++)
sum += abs(a[i][0]); //加第1列除了第1行和第n行的所有元素
for(i=1;i<n-2;i++)
sum +=abs(a[i][n-1]); //加第n列除了第1行和第n行的所有元素
return sum;
}
然后在主函数里调用 sum_edge(),返回值就是所求的和咯~
lz还可以再优化优化,让程序看起来更简洁一些哈~追问

是c语言 能不能给我个完整版的?谢谢

追答

做c语言作业的吗?这种东西要多看书,看例程,最后就熟了
现写一个,机子上没有Turbo C,没法调,可能有错~

#include
#include
#define n 4
float sum_edge(float *a);
void main()
{
float a[n][n] = {{1,2,3,4},{-1,-2,-3,-4},{5,6,7,8},{-5,-6,-7,-8}}; //这里给矩阵赋初值
float b;
b = sum_edge(a);
printf("%f",b);
}

float sum_edge(float *a)
{
...
}

本回答被网友采纳
相似回答