matlab - 从目录加载和绘制多个文件 (MATLAB)
问题描述
我正在尝试从我创建的目录中加载多个文件,将它们绘制在单独的图中,然后将它们输出为 .tiff 文件。
我相信我拥有绘制加载的文件然后将它们输出为 .tiff 文件所需的所有代码,但我无法将文件加载到 MATLAB 中以执行绘图和输出。
使用的功能:
function x = chaos(x0, lambda, vectorLength);
x0 = 0.5;
lambda = 3.8;
vectorLength = 1500;
x = zeros(vectorLength,1);
x(1) = x0;
for k=2:vectorLength,
x(k) = lambda*x(k-1)*(1-x(k-1));
end
T = 2;
x1 = x(1:end-2*T);
x2 = x(T+1:end-T);
x3 = x(2*T+1:end);
figure('Color',[1 1 1]);
h = plot3(x1, x2, x3);
xlabel('x(t)');
ylabel('x(t+T)');
zlabel('x(t+2T)');
用于创建目录和文件的代码(工作):
currentFolder = pwd;
mkdir('chaos');
for k = 1:30
data=chaos(k);
full_filename = fullfile(currentFolder,['\chaos\chaos' num2str(k) '.txt']);
fid = fopen(full_filename,'w' );
fprintf(fid,'%d\n',data);
fclose(fid);
end
full_filename = fullfile(currentFolder,['\chaos\chaos1.txt']);
fileID = fopen(full_filename,'r');
formatSpec = '%f';
X = fscanf(fileID,formatSpec);
plot(X);
用于尝试从创建的目录加载、绘图然后输出文件的代码(不工作):
for k = 1:30
dir('chaos');
x = load('chaos(k).txt');
figure('Color', [1 1 1]);
plot(x);
pause(0.1);
eval(sprintf('print -dtiff chaos%d', k));
end
我期望将 30 个图形绘制并输出到屏幕上,然后将 30 个图形输出为 .tiff 文件。实际输出仅在命令窗口中显示目录,没有任何内容被绘制或输出为 .tiff 文件。
编辑:这是解决变量 k 问题的更新代码:
x = load(['chaos', num2str(k), '.txt']);
解决方案
这里有一个问题:
for k = 1:30
dir('chaos');
x = load('chaos(k).txt');
变量插值在 Matlab 中不是这样工作的。如果您希望保存的值k
进入您的字符串,您需要使用字符串连接或sprintf
:
for k = 1:30
file = sprintf('chaos%d.txt', k);
x = load(file);
看起来你在输出代码中做正确的事情;你也只需要在这里应用它。
你可能也应该避免eval
。像这样称呼它:
print('-dtiff', sprintf('chaos%d', k));
推荐阅读
- nearley - Nearley at least one
- php - $this->session->set_userdata() not working in codeigniter
- c# - Retrain Multiclassification ITransformer
- r - 我怎样才能找到一个时间段内最相关的股票?
- linkedin - LinkedIn API - 如何检索提到组织的帖子
- linux - 使用固定种子随机播放 find 的输出
- javascript - 正则表达式不捕获多个字符
- android - 如何解决flutter_local_notifications PlatformException错误?
- firebase - 在 Firestore 控制台中按 id 查询
- xml - 如何使用 FLWOR 的 XQuery 返回一系列 XML 节点?