matlab的for循环语句中,如何把每次循环的结果存放在同一个矩阵中?。
105 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
果博东方开户电话【微8785092】
am 23 Mai 2023
Beantwortet: 果博东方在线开户【微8785092】
am 23 Mai 2023
clear;
for i=1:150 %循环150次
filename=['GH_H_0Deg_2Loca_Load',num2str(i),'.xls']; %读取某个文件夹下所有.xls文件
[NUM]=xlsread(filename); %提取.xls文件中的数据
NUM(1:16,:)=[]; %删除矩阵的前16行
A=NUM(:,5); %提取矩阵的第5列%
B=NUM(:,6); %提取矩阵的第6列
MA=max(A); %求矩阵A的最大值
a=0.4*MA;
b=0.1*MA;
C=[A,B]; %把矩阵5,6列构造矩阵C
D=C(C(:,1)>=b,:); %提取矩阵C中第二列大于b的所有行
E=D(D(:,1)<=a,:); %提取矩阵C中第二列小于a的所有行
x=E(:,2); %给x赋值矩阵E的第二列
y=E(:,1); %给y赋值矩阵E的第一列
pi=polyfit(x,y,1); %线性拟合x和y,存放于斜率和截距于pi
ki=pi(1); %提取pi中的第一个值,即斜率
resulti=[i,ki]; %将循环次序和对应的斜率存放在resulti
end
xlswrite('GH_H_0Deg_2Loca_Result.xls',resulti) %写出结果到excel
如上述代码所示
resulti只是存储了第150循环的结果,我想要的是:resulti中存储150次循环的全部结果
求助各位,感谢!
下面为方便复制粘贴,重复一下
for i=1:150
filename=['GH_H_0Deg_2Loca_Load',num2str(i),'.xls'];
[NUM]=xlsread(filename);
NUM(1:16,:)=[];
A=NUM(:,5);
B=NUM(:,6);
MA=max(A);
a=0.4*MA;
b=0.1*MA;
C=[A,B];
D=C(C(:,1)>=b,:);
E=D(D(:,1)<=a,:);
x=E(:,2);
y=E(:,1);
pi=polyfit(x,y,1);
ki=pi(1);
resulti=[i,ki];
end
xlswrite('GH_H_0Deg_2Loca_Result.xls',resulti)
0 Kommentare
Akzeptierte Antwort
果博东方在线开户【微8785092】
am 23 Mai 2023
for循环中的赋值改成
resulti( i, : ) = [ i, ki ]; % 每步对resulti数组的第 i 行进行赋值
或者
resulti = [ resulti; i, ki ]; % 每步在原resulti数组后添加新的行
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Logical finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!