| 查看: 1522 | 回复: 5 | ||
xiaoguai2012木虫 (正式写手)
|
[求助]
求助Matlab批处理for语句循环
|
|
cd('C:\0.6');% Allname=struct2cell(dir); [m,n]=size(Allname); num1z=zeros(n-2,1); for j=3:n name=Allname{1,j}; % [e1,e2,e3] = fileparts(name); e4='.txt'; q=strcmp(e3, e4); if 1==q; break; end M=importdata(name,',',6); num1=0;CC=1;%变化cc值从0到10,间隔0.1 for i=1:length(AA)-1; if AA(i)<CC&& AA(i+1)>CC ; num1=num1+1; end end end num1z(j-2,1)=num1; end sum1=sum(num1z); xlswrite('结果1.xlsx',[sum1],'Sheet1','A2'); ---------------------------------------------------------------- 我想用上述程序,对文件夹《0.6》内的文件进行批处理,在上述程序的基础上,我想变换CC值,从0到10,间隔0.1,然后输出不同CC值对应的sum1值,并将CC和sum1l列在excel表格中输出,请问各位大侠,怎样才能实现?我已经用for语句试了很多次,可是不行,请求各位大侠帮帮忙!!! |
» 猜你喜欢
博士读完未来一定会好吗
已经有21人回复
导师想让我从独立一作变成了共一第一
已经有5人回复
到新单位后,换了新的研究方向,没有团队,持续积累2区以上论文,能申请到面上吗
已经有11人回复
读博
已经有4人回复
JMPT 期刊投稿流程
已经有4人回复
心脉受损
已经有5人回复
Springer期刊投稿求助
已经有4人回复
小论文投稿
已经有3人回复
Bioresource Technology期刊,第一次返修的时候被退回好几次了
已经有9人回复
申请2026年博士
已经有6人回复
» 本主题相关价值贴推荐,对您同样有帮助:
matlab如何以循环语句形式将三维数组存储成多个asc格式的文件
已经有4人回复
求助一个Matlab语句错误,Error==>plus Matrix dimensions must agree
已经有3人回复
MATLAB读取和写入文件的操作!!!!
已经有6人回复
求助matlab写循环
已经有6人回复
matlab语句问题
已经有5人回复
求助大虫,matlab中用if语句设置变量初值
已经有8人回复
matlab中如何通过for语句得到已有矩阵的部分数据
已经有3人回复
跪求matlab的for循环语句的编写
已经有20人回复
【求助】VB如何读取txt文件~~
已经有12人回复
wang870803
铜虫 (初入文坛)
- 应助: 1 (幼儿园)
- 金币: 165.8
- 帖子: 8
- 在线: 10小时
- 虫号: 2125305
- 注册: 2012-11-14
- 性别: GG
- 专业: 电磁环境与电磁兼容
2楼2013-08-04 23:46:23
xiaoguai2012
木虫 (正式写手)
- 应助: 6 (幼儿园)
- 金币: 1659.3
- 红花: 3
- 帖子: 319
- 在线: 193.3小时
- 虫号: 1520127
- 注册: 2011-12-02
- 专业: 工程热物理相关交叉领域
|
cd('C:\0.6');% Allname=struct2cell(dir); [m,n]=size(Allname); num1z=zeros(n-2,1); for ii=0:0.1:5 CC=ii;%变化cc值从0到10,间隔0.1 for j=3:n name=Allname{1,j}; % [e1,e2,e3] = fileparts(name); e4='.txt'; q=strcmp(e3, e4); if 1==q; break; end M=importdata(name,',',6); num1=0; for i=1:length(AA)-1; if AA(i)<CC&& AA(i+1)>CC ; num1=num1+1; end end end num1z(j-2,1)=num1; end sum1=sum(num1z); xlswrite('结果1.xlsx',[sum1],'Sheet1','A2'); end vol(ii,1)=iii; sum1z(ii,1)=sum1; xlswrite('结果2.xlsx',[vol,sum1z],'Sheet1','A2'); --------------------------------------------------------------------------------- 我的程序改成了这样,可是还是不成。程序在运行的时候会逐个输出不同的CC值和其对应的sum1值,但是前一个会被后一个替代,请问我怎样改才能把所有cc值和其对应的sum1值都输出在同一个excel中? |
3楼2013-08-05 19:41:03
wang870803
铜虫 (初入文坛)
- 应助: 1 (幼儿园)
- 金币: 165.8
- 帖子: 8
- 在线: 10小时
- 虫号: 2125305
- 注册: 2012-11-14
- 性别: GG
- 专业: 电磁环境与电磁兼容
【答案】应助回帖
★ ★ ★ ★ ★
xiaoguai2012: 金币+5, ★有帮助 2013-08-09 10:42:22
xiaoguai2012: 金币+5, ★有帮助 2013-08-09 10:42:22
|
cd('C:\0.6'); Allname=struct2cell(dir); [m,n]=size(Allname); num1z=zeros(n-2,1); CC=0:0.1:5; %变化cc值从0到10,间隔0.1 sum1=zeros(1,length(CC)); for ii=1:length(CC) for j=3:n name=Allname{1,j}; [e1,e2,e3] = fileparts(name); e4='.txt'; q=strcmp(e3, e4); if 1==q break; end M=importdata(name,',',6); num1=0; for i=1:length(AA)-1 if AA(i)<CC(ii)&& AA(i+1)>CC(ii) num1=num1+1; end end end ........ 你的程序要么是你复制不完整,要么就是错了。至少多了一个end。我不知道你是如何把它运行起来的。 |
4楼2013-08-09 00:26:42
xiaoguai2012
木虫 (正式写手)
- 应助: 6 (幼儿园)
- 金币: 1659.3
- 红花: 3
- 帖子: 319
- 在线: 193.3小时
- 虫号: 1520127
- 注册: 2011-12-02
- 专业: 工程热物理相关交叉领域
|
不好意思,是我错了,应该是下面这样,现在主要是excel输出的问题,能输出,就是前一个输出的内容会被后一个输出的所代替。或者是因为程序中的错误,导致输出有问题。 cd('C:\0.65');% Allname=struct2cell(dir); [m,n]=size(Allname); num1z=zeros(n-2,1); for ii=0:0.1:5 CC=ii;%变化cc值从0到10,间隔0.1 for j=3:n name=Allname{1,j}; % [e1,e2,e3] = fileparts(name); e4='.txt'; q=strcmp(e3, e4); if 1==q; break; end M=importdata(name,',',6); num1=0; for i=1:length(AA)-1; if AA(i)<CC&& AA(i+1)>CC ; num1=num1+1; end end num1z(j-2,1)=num1; end sum1=sum(num1z); xlswrite('结果1.xlsx',[sum1],'Sheet1','A2'); end vol(ii,1)=iii; sum1z(ii,1)=sum1; xlswrite('结果2.xlsx',[vol,sum1z],'Sheet1','A2'); |
5楼2013-08-09 10:45:25
wang870803
铜虫 (初入文坛)
- 应助: 1 (幼儿园)
- 金币: 165.8
- 帖子: 8
- 在线: 10小时
- 虫号: 2125305
- 注册: 2012-11-14
- 性别: GG
- 专业: 电磁环境与电磁兼容
【答案】应助回帖
|
这个在循环里用xlswrite必然会被覆盖的,相当于每次新建一个文件往里写。可以将CC和sum1值都记下来,在循环外写文件。要在循环里写就只能用fopen+fprint了。下面是改过的程序,你可以参考一下。 cd('C:\0.65'); Allname=struct2cell(dir); [m,n]=size(Allname); num1z=zeros(n-2,1); CC=0:0.1:5; %变化cc值从0到10,间隔0.1 sum1=zeros(size(CC)); for ii=1:length(CC) for j=3:n name=Allname{1,j}; % [e1,e2,e3] = fileparts(name); e4='.txt'; q=strcmp(e3, e4); if 1==q; break; end M=importdata(name,',',6); num1=0; for i=1:length(AA)-1; if AA(i)<CC(ii)&& AA(i+1)>CC(ii); num1=num1+1; end end num1z(j-2,1)=num1; end sum1(ii)=sum(num1z); end xlswrite('结果1.xlsx',sum1); %这是按行写,要是想按列写先将sum1转置. %下面的两句看不懂,而且按你原来程序,到这里ii已经是一个固定值5.0了 vol(ii,1)=iii; sum1z(ii,1)=sum1; xlswrite('结果2.xlsx',[vol,sum1z],'Sheet1','A2'); |
6楼2013-08-09 12:50:49













回复此楼