matlab的for循环语句中,如何把每次循环的结果存放在同一个矩阵中?。
107 ビュー (過去 30 日間)
古いコメントを表示
果博东方开户电话【微8785092】
2023 年 5 月 23 日
回答済み: 果博东方在线开户【微8785092】
2023 年 5 月 23 日
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 件のコメント
採用された回答
果博东方在线开户【微8785092】
2023 年 5 月 23 日
for循环中的赋值改成
resulti( i, : ) = [ i, ki ]; % 每步对resulti数组的第 i 行进行赋值
或者
resulti = [ resulti; i, ki ]; % 每步在原resulti数组后添加新的行
0 件のコメント
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!