MATLAB编程 求二维数组中每列元素最大最小值 设计一个程序,求5*6的二维数组中元素的最大值和最小值~~!...

作者&投稿:红荔 (若有异议请与网页底部的电邮联系)
利用max和min函数可以实现。

以M数组为例:
M=[4 3
7 6
8 10
6 12
3 7 ];
[min1,position]=min(M)
运行后得到两个数组:
min1 =
3 3
position =
5 1
min1表示M数组各列最小值,position表示最小值位于数组的哪行。

求数组各列的最大值和位置也是一样:
[max1,position]=max(M)
运行结果:
max1 =
8 12
position =
3 4

求二维数组中每列元素最大最小值,是matlab中最简单的问题,如:
>> a=magic(5);
amax=max(a),amin=min(a)

amax =

23 24 25 21 22

amin =

4 5 1 2 3
所得都是行向量。

假设二维数组为M, 则你所需要的每列最大最小值可通过以下代码实现.
每列最大值 max_list = max(M,[],1);
每列最小值 min_list = min(M,[],1);

>> M=rand(2,100);
max(M')
min(M')

ans =

0.9991 0.9880

ans =

0.0155 0.0225

编程题:求一个二位数组中每列元素的最小值,并依次存入一维数组pp中。~

如下面的程序:

#include
int main()
{
// a 是一个二维数组
int a[3][4]={{1,9,10, -2},
{3,5,2, 77},
{89,4,89, 8}}, pp[4];
int i,j;

int m=3, n = 4;
for(i=0;i<n;i++) {
int min = a[0][i];
for(j=1;j<m;j++)
{
if (a[j][i] < min) min = a[j][i];
} //少了一个逗号
pp[i] = min;
}
//输出每一列的最小值
for(i=0; i<n; i++) {
printf("%d ", pp[i]);
}

printf("
");
}

//随即产生了一个5X6的矩阵,所有元素∈[0,100]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CONSOLE
{
class Program
{
static void Main(string[] args)
{
int [,] numbers=new int[5,6];
int x, y;
int max,min;
Random ra=new Random();
for (x = 0; x <= 4; x++)
{
for (y = 0; y <= 5; y++)
{
numbers[x, y] = ra.Next(100);
Console.Write("{0}, ", numbers[x, y]);
}
Console.Write("
");
}
max = numbers[0, 0];
min = numbers[0, 0];
for (x = 0; x <= 4; x++)
for (y = 0; y <= 5; y++)
{
if (numbers[x,y]>max)
max = numbers[x, y];
if (numbers[x,y]<min)
min = numbers[x, y];
}
Console.WriteLine("Max={0}, Min={1}", max, min);
Console.ReadKey();
}
}
}