0

我是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)

PS我使用的是R2012b版本

4

2 回答 2

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()在保存任何图片之前创建它们。

于 2013-06-21T09:35:52.157 回答
0

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

我将 'XX\YY\ZZ.pjg' 更改为:'XX/YY/ZZ.pjg'

奇怪的是,它对我有用。

于 2013-11-10T10:15:51.680 回答