有一个4*5矩阵,用MATLAB编程求出其最大值及其所在的位置

我刚学习自己写了一个程序a=input('输入一个4*5矩阵');max=a(1,1);fori=1:4forj=1:5ifa(i,j)>maxmax=a(i,j);ma... 我刚学习
自己写了一个程序
a=input('输入一个4*5矩阵');
max=a(1,1);
for i=1:4
for j=1:5
if a(i,j)>max
max=a(i,j);
maxi=i;maxj=j;
end
end
end
max
maxi
maxj
运行失败
请高手解释下
展开
 我来答
王爱来神葵1L
2018-12-15 · TA获得超过459个赞
知道答主
回答量:24
采纳率:0%
帮助的人:1.9万
展开全部

MATLAB求最大值直接调用求最值的函数 max 函数就好了。例如矩阵为 A ,那么求最值即为 max_A = max( max(A) ) , [m,n] = find( max_A == A )

程序中出错的原因可能是因为第一行结束的分号是中文分号,换成非英文分号就好。

MATLAB 中的 max 函数是求最大值的函数。

1、如果 A 是向量,则 max(A) 返回 A 的最大值。

2、如果 A 为矩阵,则 max(A) 是包含每一列的最大值的行向量。

3、如果 A 是多维数组,则 max(A) 沿大小不等于 1 的第一个数组维度计算,并将这些元素视为向量。此维度的大小将变为 1,而所有其他维度的大小保持不变。如果 A 是第一个维度长度为零的空数组,则 max(A) 返回与 A 大小相同的空数组。

这也是求矩阵的最大值需要使用两个 max 函数的原因。使用 find 函数可以找到矩阵中等于最大值的位置。

扩展资料:

max函数的其他用法:

1、M = max(A,[],dim) 沿着维度 dim 返回最大元素。例如,如果 A 为矩阵,则 max(A,[],2) 是包含每一行的最大值的列向量。

2、M = max(A,[],nanflag) 指定在计算中包括还是忽略 NaN 值。例如,max(A,[],'includenan') 包括 A 中的所有 NaN 值,而 max(A,[],'omitnan') 忽略这些值。可以指定使用 nanflag 选项时的运算维度。

3、[M,I] =max(___) 使用先前语法中的任何输入参数,查找 A 的最大值的索引,并在输出向量 I 中返回这些索引。如果最大值出现多次,则 max 返回对应于第一次出现位置的索引。

4、C = max(A,B) 返回从 A 或 B 中提取的最大元素的数组。

参考资料:MATLAB文档中心

Sievers分析仪
2024-10-13 广告
是的。传统上,对于符合要求的内毒素检测,最终用户必须从标准内毒素库存瓶中构建至少一式两份三点标准曲线;必须有重复的阴性控制;每个样品和PPC必须一式两份。有了Sievers Eclipse内毒素检测仪,这些步骤可以通过使用预嵌入的内毒素标准... 点击进入详情页
本回答由Sievers分析仪提供
仅仅是追忆
2018-09-10 · TA获得超过1.9万个赞
知道答主
回答量:55
采纳率:0%
帮助的人:2.4万
展开全部

输入该行后面的分号是错误的。它不应该是中文的。英语角应该是一半。或者简单地删除分号。

运行结果是:a =

1     2     3     4     5
2     3     4     5     6
1     4     3     3     2
1     3     5     7     3

max =7
maxi =4

maxj =4

扩展资料:

MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大野瘦子
高粉答主

2018-12-23 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:1227
采纳率:100%
帮助的人:32.2万
展开全部

a=floor(1+9*rand(4,5))

max=a(1,1);

maxi=1;

maxj=1;

for i=1:4

for j=1:5

if a(i,j)>max

max=a(i,j);

maxi=i;

maxj=j;

end

end

end

max

maxi

maxj

注:你的问题错在第一句后多了一个中文的。

扩展资料:

matlab中Max的用法

一、求矩阵A的最大值的函数有3种调用格式,分别是:

1、max(A):返回一个行向量,向量的第i个元素是矩阵A的第i列上的最大值。

2、[Y,U]=max(A):返回行向量Y和U,Y向量记录A的每列的最大值,U向量记录每列最大值的行号。

3、max(A,[],dim):dim取1或2。dim取1时,该函数和max(A)完全相同;dim取2时,该函数返回一个列向量,其第i个元素是A矩阵的第i行上的最大值。

求最小值的函数是min,其用法和max完全相同。

二、 Matlab中max函数在矩阵中求函数大小的实例如下:

C = max(A)

1、返回一个数组各不同维中的最大元素。

2、如果A是一个向量,max(A)返回A中的最大元素。

3、如果A是一个矩阵,max(A)将A的每一列作为一个向量,返回一行向量包含了每一列的最大元素。

4、如果A是多维数组,max(A)treats the values along the first non-singleton dimension as vectors, returningthe maximum value of each vector.

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
csg974
2009-06-26 · TA获得超过5020个赞
知道小有建树答主
回答量:915
采纳率:0%
帮助的人:1255万
展开全部
input那行后面的分号错了,不应该用中文全角的,应该用英文半角的。或者干脆去掉分号。

运行结果如下:
输入一个4*5矩阵[1 2 3 4 5;2 3 4 5 6;1 4 3 3 2;1 3 5 7 3]

a =

1 2 3 4 5
2 3 4 5 6
1 4 3 3 2
1 3 5 7 3

max =

7

maxi =

4

maxj =

4

顺便说一句,matlab有现成库函数,你干嘛非要自己编啊。

a=rand(4,5) % 取随机数,也可以像你那样input手工输入。
[m, ind]=max( a(:) ) % 最大值及其索引,a(:)把矩阵转换成向量
[i,j]=ind2sub(size(a),ind) % 最大值下标
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天云小店
2016-10-13 · TA获得超过2.8万个赞
知道大有可为答主
回答量:3281
采纳率:91%
帮助的人:755万
展开全部

可以利用max函数求出最大值及其所在的位置,具体实现可参考如下代码:

% 函数文件fun.m
function [maxV, row, col] = fun(x)
[maxV1, ~] = max(x, [], 1);  % 获取每列的最大值
[maxV2, ~] = max(x, [], 2);  % 获取每行的最大值
[maxV, col] = max(maxV1);  % 获取x每列最大值的最大值(即x的最大值,max默认获取没列最大值),以及maxV1中最大值所在的位置(x的最大值所在的列数)
[~, row] = max(maxV2);  % 获取x每行最大值的最大值(即x的最大值,max默认获取没列最大值),以及maxV2中最大值所在的位置(x的最大值所在的行数)

% 主文件main.m
X = [2     8     4     5     6
     7     3     9     3    13
    23     3    12    17    11
     2    34     7    12     9];
[maxValue, row, col] = fun(X);  % 执行后,输出maxValue=34,row=4,col=2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式