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

来源:互联网 发布:linux启动kde 编辑:程序博客网 时间:2024/06/06 20:43

本文附上一个例子代码,很值得学习,关于文件创建,读取的一些简单基础的语法,个人觉得很值得学习,另外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']);endclc; 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    endend


 

关于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’])

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