在matlab上保存多个文件夹上的数字

时间:2013-06-21 09:20:57

标签: matlab

我是matlab的新手,目前我不知道很多事情。

我有一个脚本可以创建超过100个数字。我想将这些数字保存在3个不同的文件夹中。这是我的代码,直到现在:

pridir='C:\Users\tasos\Desktop\folder';
figtxt1='folder1';
figtxt2='folder2';
figtxt3='folder3';
yM = load('pathtomydata');
[n,m]=size(yM);
maxtau2 = 10;
alpha = 0.05;
zalpha = norminv(1-alpha/2);
p=6;

for i=1:m-1
    for j=i+1:m

        figure()
        y1V=yM(:,i);
        y2V=yM(:,j);
        plot(y1V,'b')
        hold on
        plot(y2V,'r')
        legend(sprintf('text= % d',i),sprintf('text= % d',j))
        title('My Title')
        printto = sprintf('%s%d\\text%d and %d.jpg',pridir,i,i,j);
        print('-djpeg90',printto)
        close(gcf)
    end
end

如果我像这样离开我的代码,所有的数字都会创建,但它们不会保存在文件夹中。如果我从最后两行中删除“%”,则出现以下错误

Error using name (line 103)
Cannot create output file 'C:\Users\tasos\Desktop\folder1\text1 and 2.jpg'

Error in print (line 206)
    pj = name( pj );

Error in test (line 25)
        print('-djpeg90',printto)

P.S。我使用的是R2012b版本

2 个答案:

答案 0 :(得分:1)

避免使用eval()

定义一个通用打印目录:

pridir = 'C:\Users\***\Desktop\fold';

然后在内循环内:

printto = sprintf('%s%d\\figuretext %d and %d.jpg',pridir,i,i,j);
print('-djpeg90',printto)

其中printto类似于:

C:\Users\***\Desktop\fold1\figuretext 1 and 3.jpg

此外,您可能希望在打印后关闭该图:close(gcf)

注意:您要保存文件的目录应该已经存在,否则在保存任何图片之前使用mkdir()创建它们。

答案 1 :(得分:0)

我认为matlab更改了使用2013版本编写文件夹的代码。

我改变了' XX \ YY \ ZZ.pjg' 至: ' XX / YY / ZZ.pjg'

奇怪的是,它对我有用。