matlab的for​循环语句中,如何把每​次循环的结果存放在同​一个矩阵中?。

107 ビュー (過去 30 日間)
果博东方开户电话【微8785092】
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)

採用された回答

果博东方在线开户【微8785092】
for循环中的赋值改成
resulti( i, : ) = [ i, ki ]; % 每步对resulti数组的第 i 行进行赋值
或者
resulti = [ resulti; i, ki ]; % 每步在原resulti数组后添加新的行

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!