Ok。多くのトラブルシューティング時間...そして後で多くのエラー「音」が発生しましたが、私はまだ同じ問題を抱えています. 私の初心者スキルのため、プロジェクトの次のセグメントを達成するのに問題があります。
できる限り詳しく説明しますので、今回はうまくいけばうまくいきます。
私のコンピューターには、さまざまなサブフォルダーを含むフォルダー C:\data があります。
サブフォルダーは、MMDDYY 形式の日付で名前が付けられます。たとえば、「040312」
各サブフォルダーには、野球チームにちなんで名付けられた Excel ファイルがあります。各サブフォルダーには、異なる組み合わせの xls ファイルが含まれる場合があります。
次の目的を達成するコードを作成しようとしています。
1.) C:\data フォルダーのすべてのサブフォルダーをループして、Angles.xls、Diamondbacks.xls などのファイル名を持つ xls ファイルを探します。
2.) ファイルが各サブフォルダーにある場合は、スプレッドシート データをインポートし、「スコア」および「許可」というタイトルのデータのプロットを生成します。
3.) ファイルが見つからない場合は、特定のサブフォルダーをスキップして、次のファイルに移動します。4.)次に、生成されたプロットを、スプレッドシートのインポート元と同じフォルダーに .fig および .bmp ファイルとして保存します。
genpath、dir などのさまざまな関数を使用するためのヒントを得ましたが、手探りしてきたコードでは目標を達成できません。
a) スクリプトがすべてのサブフォルダーから Excel ファイルをインポートしない
b) スクリプトは、関連付けられたサブフォルダーに .fig または .bmp ファイルを保存しません。
これが私が手探りしてきたコードです:
私は、これがすべて間違っていることを知っています。上記の目標を達成するために私のコードを調整するのを手伝ってください!
addpath(genpath('c:\data'))
folder = 'c:\data';
subdirs = dir(folder);
subdirs(~[subdirs.isdir]) = [] ;
numberOfFolders = length(subdirs);
if numberOfFolders <= 0
uiwait(warndlg('Number of folders = 0!'))
end
wantedfiles = {'Angels' 'Diamondbacks' 'Orioles' 'Royals' 'Yankees' 'Mets' 'Giants'};
for K = 1 : numberOfFolders
thissubdir = subdirs(K).name;
if strcmp(thissubdir, '.') || strcmp(thissubdir, '..')
continue;
end
subdirpath = [folder '\' thissubdir];
for L = 1 : length(wantedfiles)
for wantedfiles = {'Angels' 'Diamondbacks' 'Orioles' 'Royals' 'Yankees' 'Mets' 'Giants'};
folder = '';
fileToRead1 = [wantedfiles{1} '.xls'];
sheetName='Sheet1';
if exist(fileToRead1, 'file') == 0
% File does not exist
% Skip to bottom of loop and continue with the loop
continue;
end
%これは、データをインポートして整理することです % このコードはすべて、ファイルを手動でインポートして自動生成したものです
[numbers, strings, raw] = xlsread(fileToRead1, sheetName);
if ~isempty(numbers)
newData1.data = numbers;
end
if ~isempty(strings) && ~isempty(numbers)
[strRows, strCols] = size(strings);
[numRows, numCols] = size(numbers);
likelyRow = size(raw,1) - numRows;
% Break the data up into a new structure with one field per column.
if strCols == numCols && likelyRow > 0 && strRows >= likelyRow
newData1.colheaders = strings(likelyRow, :);
end
end
% Create new variables in the base workspace from those fields.
for i = 1:size(newData1.colheaders, 2)
assignin('base', genvarname(newData1.colheaders{i}), newData1.data(:,i));
end
% Now I execute the plotting of data
subplot (2,1,1), plot(Score,Allow)
title([wantedfiles{1} 'Testing to see if it works']);
subplot (2,1,2), plot(Allow,Score)
title('Well, did it?');
% here 生成されたプロットを保存しますが、保存したい場所に保存されません
saveas(gcf,[wantedfiles{1} ' did it work.fig']);
saveas(gcf,[wantedfiles{1} ' did it work.bmp']);
end
end
end
%スクリプトの最後でも、必要なファイルをループできませんでした rmpath(genpath('c:\data'));