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. 所以最后一列变成第一列,倒数第二列变成第二列,以此类推。
  6. 这是 中包含的值的棋盘图y

编辑以包含第 5 行和第 6 行的更多详细信息:

重塑线假设有一行编号为 1234,并且该行中有 784 (28*28) 个元素。它取出该行,并从中制作一个 28x28 矩阵,方法是取出前 28 个元素,将它们放入新矩阵的第一列,然后取出接下来的 28 个元素,使其成为第二列,依此类推,再增加 26 个次。最后的矩阵是 names x

对于这一y行,就像我说的那样,它只是反转 的列x,将最后一列放在第一位,将倒数第二列放在第二位,依此类推,直到 的第一列x作为 的最后一列y

于 2012-05-12T18:55:38.413 回答