永发信息网

matlab如何实现通过变量来命名文件?

答案:5  悬赏:30  手机版
解决时间 2021-12-31 20:09
  • 提问者网友:动次大次蹦擦擦
  • 2021-12-31 02:03
意思就是,我输入一个字符串,把这个字符串当做txt文件的文件名保存起来,应该怎么办??
最佳答案
  • 五星知识达人网友:孤独入客枕
  • 2022-01-06 09:19
str=input('str=','s'); %其中's'是输入字符串的意思
filename=['c:\' str '.txt']
这样你就可以使用filename作为你的文件名了!
全部回答
  • 1楼网友:像个废品
  • 2022-01-06 11:53
str=input('str=','s'); %其中's'是输入字符串的意思 dos(['echo > ',str])
  • 2楼网友:鱼芗
  • 2022-01-06 10:28
我的方法: mydir=uigetdir('d:','选择一个txt文件保存目录');%%%选择txt文件的保存位置 % %%%可以选择已存在文件夹,也可以新建文件夹,也可以 % %%%选择D盘以外的文件夹,这里的d只起参考作用 str=input('str=','s'); %其中's'是输入字符串的意思,即输入txt文件名 fid=fopen([mydir '\' str '.txt'],'w');%%%以刚才的名字新建txt文件 a=[1 2 3;5 7 9];%%%要写入的数据 fprintf(fid,'%d %d %d\n',a');%%%向txt文件写入数据,如果不写数据的话此步骤可以省略 fclose(fid);%%%关闭txt文件 楼上的方法我也看过了,有一些小问题,我修改了一下,另外个人觉得楼上的方法把简单问题复杂化,很简单的东西没必要搞得那么复杂吧,下面给出我修改后的楼上的方法 楼上修改后: clear;clc; file_name_tag=1; err_file_name=['\/:*?"<>|',':*?“{}'];%文件名不应含有的字符,此处可以根据需要自己改 while file_name_tag err_num=0; % err_char=[];%%% file_name=input('文件名:','s'); err_char=zeros(1,length(file_name)); for n=1:length(err_file_name) if sum(file_name==err_file_name(n)) err_num=err_num+1; %获取输入的文件名中非法的字符: err_char(err_num)=err_file_name(n);%err_char为字符串,应用char()函数 end; end; if err_num disp(strcat('文件名中含有非法字符:“',err_char(1:err_num),'”,请重新输入!')); elseif isempty(file_name) disp('文件名不能为空') else file_name_tag=0; %跳出循环 end; end; file_dir_tag=1;%准备进入循环 while file_dir_tag file_dir=input('路径:','s'); if file_dir(end)~='/'||file_dir(2)~=':'||file_dir(3)~='/' disp('错误的文件路径,应以“X:/”开头,并以“/”结束,请重新输入!'); elseif isempty(file_name) disp('路径不能为空') else file_dir_tag=0;%跳出循环 end; end; file_format_tag=1;%准备进入循环 while file_format_tag file_format=input('文件格式:','s'); if file_format(1)~='.' disp('错误的文件格式,应以“.”开头,请重新输入!'); elseif isempty(file_name) disp('文件格式不能为空') else file_format_tag=0;%跳出循环 end; end; wenjian=strcat(file_dir,file_name,file_format);%文件路径、名称和格式 % dos(['echo > ',wenjian]);%保存文件 fid=fopen(wenjian,'w'); a=[1 2 3;5 7 9]; fprintf(fid,'%d %d %d\r\n',a'); fclose(fid); 这算是比较复杂的方法,我修改了一些小问题,做了一些改动
  • 3楼网友:爱难随人意
  • 2022-01-06 09:54
创建文件【wenjian.m】,内容如下: clear all;%清除所有内存变量 clc; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %定义文件名 file_name_tag=1;%准备进入循环,至少循环一次,此结构相当于C语言do...while...语句 err_file_name=['\/:*?"<>|'];%文件名不应含有的9个字符 while file_name_tag err_num=0; err_char=[]; file_name=input('文件名:','s');%其中's'是输入文件名为字符串,可以为空 for n=1:length(err_file_name) if sum(file_name==err_file_name(n)) err_num=err_num+1; %获取输入的文件名中非法的字符: err_char(err_num)=char(err_file_name(n));%用char()函数生成字符串err_char end; end; if err_num disp(strcat('文件名中含有非法字符:',err_char,',请重新输入!')); else, file_name_tag=0; %跳出循环 end; end; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %设置文件路径 file_path_form=input('路径输入方式,“0”代表自动,“1”代表手动:'); switch file_path_form case 0 file_path=strcat(uigetdir,'/');%路径与文件名之间应该用“/”隔开 case 1 file_path_tag=1;%准备进入循环 while file_path_tag file_path=input('路径:','s'); if length(file_path)==0||file_path(end)~='/'||file_path(2)~=':'||file_path(3)~='/' disp('错误的文件路径,应以“X:/”开头,并以“/”结束,请重新输入!'); else, file_path_tag=0;%跳出循环 end; end; end; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %设置文件扩展名 file_ext_tag=1;%准备进入循环 while file_ext_tag file_ext=input('文件扩展名:','s'); if length(file_ext)==0||file_ext(1)~='.' disp('错误的文件扩展名,应以“.”开头,请重新输入!'); else, file_ext_tag=0;%跳出循环 end; end; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %生成文件 file=strcat(file_path,file_name,file_ext);%完整的文件包括路径、名称和扩展名 fid=fopen(file,'r'); if fid>0%检查文件是否已存在 fid=fclose(fid);%文件以只读方式打开,及时关闭文件 sign=input(['文件已存在!输入“Y”或“y”,则更新原文件;',... '输入“N”或“n”,则请更改文件名、路径或扩展名;',... '输入其它字符,则退出:'],'s'); if sign=='Y'||sign=='y' delete(file);%先删除原文件 fid=fopen(file,'w');%后创建新文件 fid=fclose(fid);%文件已更新,及时关闭文件 elseif sign=='N'||sign=='n' wenjian;%返回初始状态,重新输入 end; else, fid=fopen(file,'w');%文件不存在,创建新文件 if fid>0 fid=fclose(fid);%文件已更新,及时关闭文件 end; end;
  • 4楼网友:千夜
  • 2022-01-06 09:43
你这样不行,但是load(a)就可以了,也可以用 for i = 1:100, temp = strcat(filepath, num2str(i)); cd(temp); A = load(文件名); end 如果每个文件夹下面的文件名不同,那就比较麻烦了,你需要用what命令,知道文件夹下面有几个文件,选出你需要的文件,再load 另外,站长团上有产品团购,便宜有保证
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯