我刚开始使用matlab并且需要非常快速地完成这个程序,所以我没有时间完成所有教程。
熟悉它的人可以解释下面的陈述正在做什么。[Y,I]=max(AS,[],2);
[]
和AS
之间的2
让我感到困惑。并且是否已将最大值分配给Y
和I
?
答案 0 :(得分:5)
C = max(A,[],dim)
返回标量A
指定的dim
维度中的最大元素。例如,max(A,[],1)
会沿A
的第一维(行)生成最大值。
[C,I] = max(...)
找到A
的最大值的索引,并在输出向量I
中返回它们。如果有多个相同的最大值,则返回找到的第一个索引。
我认为[]
只是为了区别于max(A,B)
。
答案 1 :(得分:2)
AS是矩阵。
这将在其第二维(即其列)中返回AS的最大元素
答案 2 :(得分:2)
C = max(A,[],dim)
返回标量dim指定的A维度的最大元素。例如,max(A,[],1)
会沿A
的第一维(行)生成最大值。
此外,[C, I] = max(...)
表单会为C
中的I
及其索引(即位置)提供最大值。
你为什么不试试这样的例子呢?将其输入MATLAB,看看你得到了什么。它应该让事情更容易看到。
m = [[1;6;2] [5;8;0] [9;3;5]]
max(m,[],2)
答案 3 :(得分:1)
此功能采用AS并沿AS的第二维产生最大值。它返回最大值'Y'和它的索引'I'。
答案 4 :(得分:0)
注意matlab惯例中的明显皱纹;有许多内置函数具有如下签名:
xs = sum(x,dim)
在维度昏暗中“沿着”工作。 max和min是奇怪的例外:
xm = max(x,dim); %this is probably a silent semantical error!
xm = max(x,[],dim); %this is probably what you want
我有时希望matlab有一个二进制最大值和最大崩溃,而不是把它们推到同一个函数中......