0

昨夜からこのコードを試していますが、このコードが何をしているのか理解できません。実際、私はmatlabプログラミングの初心者です

 load('79.mat')
 trainingData=d79;
 colormap(gray);
 colormap(grey);
 x=reshape(d79(1234,:),28,28);
 y = x(:,28:-1:1); 
 pcolor(y');

このコードを理解するのを手伝ってください。:/

4

1 に答える 1

2

これはとても簡単です。行ごとの説明は次のとおりです。

  1. データファイルからデータを読み込みます
  2. 読み込まれたデータを trainingData という名前の変数に入れます
  3. プロット用のカラーマップを設定します
  4. 読み込まれた行列の 1234 行目を取得し、28 行 28 列の行列に変換して、変数 に格納しますx。たとえば、より小さいスケールでは、[5 6 7 8] は行列 [5 7;] に変換されます。6 8] その行列を 2 行 2 列に再形成する場合。
  5. の列の順序を逆にしてx、 に入れyます。したがって、最後の列が最初になり、最後から 2 番目が 2 番目になります。
  6. これは、 に含まれる値のチェッカーボード プロットですy

5 行目と 6 行目に詳細を含めるように編集されました。

reshape ラインは、番号 1234 の行があり、その行に 784 (28*28) の要素があると想定しています。その行を取得し、最初の 28 要素を取得して新しい行列の最初の列にし、次の 28 要素を取得して 2 番目の列にするなどして、そこから 28x28 の行列を作成します。回。最後の行列は namesxです。

行についてはy、私が言ったように、 の列を逆にするだけでx、最後の列を最初に配置し、最後から 2 番目の列を 2 番目に配置し、 の最初の列がxの最後の列として配置されるまで続けますy

于 2012-05-12T18:55:38.413 に答える