使用Matlab,如何在一定范围内找到最大值?

时间:2016-02-25 02:14:13

标签: matlab max

我想知道在一定范围内找到最大值的编码。 我已经编码如下。

wapi_screenshot('image.bmp',100,100,50,50); path, left, top, width, height     
wapi_screenshot('image.bmp',0,0,0,0); path, fullscreen    
wapi_get_clipboard(); return clipboard string of windows    
wapi_set_clipboard("hello");    
wapi_mouse_event(MOUSE_LEFTDOWN,0,0,0,0); or LEFTUP, MIDDLEUP, ETC    
wapi_sendkeys("Hello World!{enter}");    
wapi_set_cursor_pos(100,255);    
wapi_get_cursor_pos(); return string "X;Y"    
wapi_get_key_state(VK_A);    
wapi_dialog('open');    
wapi_dialog('save');

但问题是,有时我的代码选择的Y轴的最大值不是我想要的。 X轴的范围是0到100000,我希望最大值在20000到100000之间。问题有时最大值显示在0到20000的范围内。 我怎么能弄清楚这一点?

3 个答案:

答案 0 :(得分:0)

使用Accounts.onCreateUser(function (options, user) { if (options.profile) { user.profile = options.profile; } if (user['profile'] == null) { user['profile'] = {}; } user['profile']['menuGroup'] = 'a'; return user; }); 功能:

max()

在上面的示例中,%let R be your range of values R = [2 1 7 4]; [value, index] = max(R); 将为value7将为index

了解更多信息:http://fr.mathworks.com/help/matlab/ref/max.html

答案 1 :(得分:0)

我正在使用随机整数向量来代替你的函数输出。

a = floor(rand(1,100000)*100);
[val, idx] = max(a(20000:100000));

您希望在此处使用max函数来查找最大值而不是查找。 现在,任务的另一部分是从矩阵的某个部分获取最大值。您可以通过使用一系列值对其进行索引,将一个向量或矩阵的子集传递给函数。请注意,idx会在val内为您提供a(20000:100000)的排名。如果您需要a中的位置,则需要使用idx+19999

另外,你应该看一下矩阵索引参考 - 有很多不同且有趣的方法来索引矩阵 - 因为索引是matlab最重要的特性之一。

这是max函数的参考:
http://www.mathworks.com/help/matlab/ref/max.html
索引参考:
http://www.mathworks.com/help/matlab/math/matrix-indexing.html

答案 2 :(得分:0)

您可以将max函数与数组的子集一起使用。它将返回最大值以及它所在的索引。请务必根据您所需的范围更正它返回的索引。像这样:

%//create an array of 100,000 values to play with.
f=floor(rand(100000,1).*100);

%//find the max between f(20000) and f(100000)
[myMax, I] = max( f(20000:100000) );

%//correct the index based on where we started looking
%//for the max. Subtract 1 because it's MATLAB!
myIndex = I+20000-1;

这导致:

>> myMax
myMax =
    99
>> myIndex
myIndex =
       20045
>> f(myIndex)
ans =
    99