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

コードをこのままにしておくと、すべての図が作成されましたが、フォルダーに保存されませんでした。最後の 2 行から「%」を削除すると、次のエラーが発生します。

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()

汎用印刷ディレクトリを 1 つ定義します。

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

また、印刷後に Figure を閉じることもできます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 に答える