首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从目录加载和打印多个文件(MATLAB)

从目录加载和打印多个文件(MATLAB)
EN

Stack Overflow用户
提问于 2019-04-17 23:17:15
回答 1查看 31关注 0票数 0

我正在尝试从我创建的目录加载多个文件,将它们绘制在单独的图形中,然后将它们输出为.tiff文件。

我相信我有绘制加载的文件,然后将它们输出为.tiff文件所需的所有代码,但我无法将文件加载到MATLAB中进行绘制和输出。

使用的函数:

代码语言:javascript
复制
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)');

用于创建目录和文件的代码(工作中):

代码语言:javascript
复制
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);

用于尝试从创建的目录加载、绘制然后输出文件的代码(不起作用):

代码语言:javascript
复制
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']);问题的更新代码

EN

回答 1

Stack Overflow用户

发布于 2019-04-19 17:42:44

这里有一个问题:

代码语言:javascript
复制
for k = 1:30
    dir('chaos');
    x = load('chaos(k).txt');

变量插值在Matlab中不是这样工作的。如果希望将k中保存的值放入字符串中,则需要使用字符串连接或sprintf

代码语言:javascript
复制
for k = 1:30
    file = sprintf('chaos%d.txt', k);
    x = load(file);

看起来您在输出代码中进一步做了正确的事情;您只需要在这里应用它。

您可能也应该避免使用eval。这样叫它:

代码语言:javascript
复制
print('-dtiff', sprintf('chaos%d', k));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55730983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档