1

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'));

4

0 に答える 0