matlab 找出x所对应的最大值y,有一组x,每一个x对应很多y值如题所述,假设我的x范围从(-50,50),y的范围从(0 50),其中的每一个x值都对应着多个y值以及yz值相对应的速度,现在我想找出每一个x
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/19 04:29:57
matlab 找出x所对应的最大值y,有一组x,每一个x对应很多y值如题所述,假设我的x范围从(-50,50),y的范围从(0 50),其中的每一个x值都对应着多个y值以及yz值相对应的速度,现在我想找出每一个x
matlab 找出x所对应的最大值y,有一组x,每一个x对应很多y值
如题所述,假设我的x范围从(-50,50),y的范围从(0 50),其中的每一个x值都对应着多个y值以及yz值相对应的速度,现在我想找出每一个x值上最大的速度,与此同时找出此速度所对应的y值.
例如 我现在知道 x y w 有(1,2,1)(1,3,2)(1,4,3),(2,2,4)(2,4,5)(2,6,8)
我最后想得到想x=1是,max w=3m,y=4; x=2时,max w=8,y=6.以此类推.我大概一共有几万个数据,所以不能自己找出来.
matlab 找出x所对应的最大值y,有一组x,每一个x对应很多y值如题所述,假设我的x范围从(-50,50),y的范围从(0 50),其中的每一个x值都对应着多个y值以及yz值相对应的速度,现在我想找出每一个x
不清楚你的数据形式,以下的 x、y、w 是分开的向量
clear,clc
x = [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最大值,及对应y
a(j,:) = [i,y_ref,w_max]; %将找到的x、y、z存入a的一行
j = j+1;
end
a %输出结果
那这些数组是否存在了一个矩阵中??比如A中
a = A(1,:,:),然后用循环找到对应的W 和 Y 用 max应该就可以
%% 此程序是基于你所给的数据为例的
clear all;
clc;
%% 若数据量太大,无法手动输入,可通过常用的importdata指令、load指令或xlsread指令来读取
% 这三个指令的具体用法自己去查
% 如:Data=xlsread('温度冷负荷及湿度.xls','sheet1','B2:D7562');
% 第一项是xls格式的文件...
全部展开
%% 此程序是基于你所给的数据为例的
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);
end
disp(Ta);% Ta变量中装的就是最终的筛选结果
直接复制运行结果:
1 4 3
2 6 8
收起