matlab 找出x所对应的最大值y,有一组x,每一个x对应很多y值如题所述,假设我的x范围从(-5
答案:2 悬赏:40 手机版
解决时间 2021-02-11 09:35
- 提问者网友:玫瑰园
- 2021-02-10 08:54
matlab 找出x所对应的最大值y,有一组x,每一个x对应很多y值如题所述,假设我的x范围从(-5
最佳答案
- 五星知识达人网友:等灯
- 2021-02-10 09:34
不清楚你的数据形式,以下的 x、y、w 是分开的向量clear,clcx = [1 2 3 1 2 3 3 3]; y = rand(size(x)); w = rand(size(x));j = 1; a = zeros(length(unique(x)),3);%初始化for i = unique(x) %获得x的不同值ind_x = (x == i); % x 某一相同值的所有位置y1 = y(ind_x); w1 = w(ind_x); %与该 x 对应的y、w的值[w_max,ind_w] = max(w1); y_ref = y1(ind_w); %获得w最大值,及对应ya(j,:) = [i,y_ref,w_max]; %将找到的x、y、z存入a的一行j = j+1;enda %输出结果======以下答案可供参考======供参考答案1:那这些数组是否存在了一个矩阵中??比如A中a = A(1,:,:),然后用循环找到对应的W 和 Y 用 max应该就可以供参考答案2:%% 此程序是基于你所给的数据为例的clear all;clc;%% 若数据量太大,无法手动输入,可通过常用的importdata指令、load指令或xlsread指令来读取% 这三个指令的具体用法自己去查% 如:Data=xlsread('温度冷负荷及湿度.xls','sheet1','B2:D7562');% 第一项是xls格式的文件名,第二项标明数据在表格的第一页,第三项标明取B2到D7562的7561×3个数据Data=[1 2 1;1 3 2;1 4 3;2 2 4;2 4 5;2 6 8];% 注意此处数据格式要求为n×3的数组,第一列为x,第二列为y,第三列为w速度Data=sortrows(Data,1);a=Data(1,1);index=1;k=1;for i=1:100000000 topsp=0; b=find(Data(:,1)==a); for j=index:b(end,1) if Data(j,3)>topsp Ta(k,:)=[Data(j,1) Data(j,2) Data(j,3)]; end end k=k+1; index=b(end,1)+1; if index>size(Data,1) break end a=Data(index,1);enddisp(Ta);% Ta变量中装的就是最终的筛选结果直接复制运行结果: 1 4 3 2 6 8
全部回答
- 1楼网友:荒野風
- 2021-02-10 10:27
我也是这个答案
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯