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

意思就是,我输入一个字符串,把这个字符串当做txt文件的文件名保存起来,应该怎么办??

我的方法:
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);
这算是比较复杂的方法,我修改了一些小问题,做了一些改动
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-05-25
创建文件【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;本回答被提问者采纳
第2个回答  2011-07-20
str=input('str=','s'); %其中's'是输入字符串的意思
filename=['c:\' str '.txt']
这样你就可以使用filename作为你的文件名了!
第3个回答  2011-07-21
你这样不行,但是load(a)就可以了,也可以用

for i = 1:100,
temp = strcat(filepath, num2str(i));
cd(temp);
A = load(文件名);
end

如果每个文件夹下面的文件名不同,那就比较麻烦了,你需要用what命令,知道文件夹下面有几个文件,选出你需要的文件,再load
另外,站长团上有产品团购,便宜有保证
第4个回答  2011-07-20
str=input('str=','s'); %其中's'是输入字符串的意思
dos(['echo > ',str])

matlab如何实现通过变量来命名文件?
mydir=uigetdir('d:','选择一个txt文件保存目录');%%%选择txt文件的保存位置 可以选择已存在文件夹,也可以新建文件夹,也可以 选择D盘以外的文件夹,这里的d只起参考作用 str=input('str=','s'); %其中's'是输入字符串的意思,即输入txt文件名 fid=fopen([mydir '\\' str '.txt'],'w...

matlab怎么实现文件的重命名?
然后用下面的方式保存\\x0d\\x0a file_path = ['文件目录\\变量(对应于你的x(i),但是你要将x(i)变为字符串格式) '.xls(保存文件后缀名,txt也可以)];\\x0d\\x0a 例如:file_path = ['C:\\Users\\Administrator\\Desktop\\M(i,:) '.xls]...

matlab怎么用循环变量命名
for b=1:3 for k=0:9 s=sprintf('D:\\\\1\\\\%d%d.bmp',b,k)end end 输出为:s = D:\\1\\10.bmp s = D:\\1\\11.bmp s = D:\\1\\12.bmp 。。。s = D:\\1\\20.bmp s = D:\\1\\21.bmp s = D:\\1\\22.bmp 。。。是不是要这样的?

matlab怎将文件名称设为变量
如果文件可以直接用load读取,那么比较简单:N=100; % 文件数量for i=1:N filename = sprintf('asskil_%04i.txt',i); load(filename);end 如果文件不能直接用load读取,而是用别的函数处理(假设函数名为Readdata):N=100; % 文件数量for i=1:N filename = sprintf('asskil...

matlab 文件名设置为变量
=',num2str(x^2),';']);end 这段代码执行后,就是y1=1*1,y2=2*2,y3=3*3.你可以按照这种方法来生成你需要的文件名。比如i_m.txt等等。2.对于文件操作这一块,你的概念是不清晰的save只能保存变量,而不能对文件重命令。你可以自己再搜索资料进行修改。希望采纳,设置为满意答案,谢谢。

Matlab中i=1:10,如何用变量命名10个txt,i.txt?
可以尝试如下命令来保存这十个变量:clc;clear;A=[]for i=1:10 A=magic(i);s=num2str(i);str=[s,'.txt'];save(str,'-ascii','A')end

matlab 文件名设置为变量
for i=1:3;clear all clc filename = [num2str(i),'.txt'];load(filename);程序内容 。。。save([num2str(i),'_m','.txt'],'FA');save([num2str(i),'_p','.txt'],'FP');end

matlab 如何保存图片,图片的文件名为变量名
Path = 'C:\\Users\\AAA\\Desktop\\新建文件夹';File = dir(fullfile(Path,'*.txt'));A=length(File);FileNames = {File.name};for i=1:A S = char(FileNames(i));saveas(gcf, ['C:\\Users\\AAA\\Desktop\\新建文件夹\\',S,'.fig'])end 可能回答的太晚,但应该可以帮到其他人 ...

matlab fopen 文件名字 变量
你直接写个循环就可以了~~str1='E:\\共享\\数据\\2004_';str2='_经度-90~-60_纬度-30~30.txt';for i=1:365%%%从第一天变化到365天 filename=[str1,num2str(i),str2]buffer=fopen('filename','w');end

Matlab中怎么通过循环for来对变量命名?
MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

相似回答