matlab 基本关于文件创建,读取的操作

本文附上一个例子代码,很值得学习,关于文件创建,读取的一些简单基础的语法,个人觉得很值得学习,另外matlab中eval函数,也应该值得学习下,真的很好的函数,功能强大。

上代码:

clc; clear all;
% 先判断目录
temp = 'c:\\ceshi';
if ~exist(temp)
    mkdir(temp);
end
% 存储数据
for i = 1 : 99
    t1 = num2str(i);
    eval(['save ' temp '\\' t1 '.mat' ' i']);
end
clc; clear all;
temp = 'c:\\ceshi';
files = dir([temp, '\\*.mat']);
if ~isempty(files)
    for i = 1 : length(files)
        filename = files(i).name;
        D = importdata(fullfile(temp,filename));
        if(isa(D,'struct'))
            data=D.data;
        elseif(isa(D,'double'))
            data=D;
        end
        if ~isempty(data)
            pos = strfind(filename,'.');
            filename = filename(1:(pos(length(pos))-1));
            filename = strcat('ceshi-',filename,'.mat');
            eval(['save ' temp '\\' filename ' data']);
        end
    end
end


 

关于eval的用法:

eg1:

当前目录下建立三个文件夹,分别命名为A1、A2、A3

i=1;
 
t=num2str(i);
 
destpath='D:\test\';
 
eval(['mkdir '  destpath  'A' t]);

eg2:

我想生成100个变量,取名分别为A1~A100,生成100个3*3随机变量,

for i=1:100
 
eval(['A',num2str(i),'=rand(3);'])
 
end


eg3:

有变量a='b',能不能将'b'变成一个变量名,将值赋给变量b。
这里就可以用eval命令解决。

a='b';
 
temp=200;%先将值赋给临时变量temp
 
eval([a,'=temp;']); %注意!这里a是不带引号的!生成变量b,将temp的值赋给b


eg4:

k=[1 2 3;4 5 6;7 8 9]
eval(['k1','=',num2str(k)])
就无法运行,出现错误如下;
??? Error using ==> horzcat
All matrices on a row in the bracketed expression must have the
same number of rows.

solve:


k1=eval(   mat2str(k) )  或eval(['k1','=',‘k’])

好了 相信大家现在可以理解了吧  哈哈。。 

你可能感兴趣的:(matlab 基本关于文件创建,读取的操作)