matlab基本ファイル作成、読み取りの操作について
2262 ワード
本文は1つの例のコードを添付して、とても学ぶ価値があって、ファイルの作成について、読むいくつかの簡単な基礎の文法、個人はとても学ぶ価値があると思って、またmatlabの中のeval関数、同じく学ぶ価値があって、本当にとても良い関数、機能は強大です.
上のコード:
evalの使い方について:
eg1:
現在のディレクトリの下に3つのフォルダを作成し、それぞれA 1、A 2、A 3と命名します.
eg2:
100個の変数を生成して、それぞれA 1~A 100と名付けて、100個の3*3ランダム変数を生成したいのですが、
eg3:
変数a='b'があり、'b'を変数名に変えて変数bに値を割り当てることはできません.ここでevalコマンドで解決できます.
eg4:
k=[12 3;4 5 6;7 8 9]eval(['k 1','=',num 2 str(k)])は実行できません.エラーは以下の通りです.??Error using ==> horzcat All matrices on a row in the bracketed expression must have the same number of rows.
solve:
k 1=eval(mat 2 str(k))またはeval(['k 1','=','k'])
皆さんは今理解できると信じています.ははは.
上のコード:
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:
現在のディレクトリの下に3つのフォルダを作成し、それぞれA 1、A 2、A 3と命名します.
i=1;
t=num2str(i);
destpath='D:\test\';
eval(['mkdir ' destpath 'A' t]);
eg2:
100個の変数を生成して、それぞれA 1~A 100と名付けて、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=[12 3;4 5 6;7 8 9]eval(['k 1','=',num 2 str(k)])は実行できません.エラーは以下の通りです.??Error using ==> horzcat All matrices on a row in the bracketed expression must have the same number of rows.
solve:
k 1=eval(mat 2 str(k))またはeval(['k 1','=','k'])
皆さんは今理解できると信じています.ははは.