【问题标题】:MATLAB Saving and Loading Feature VectorsMATLAB 保存和加载特征向量
【发布时间】:2012-04-28 07:56:34
【问题描述】:

我正在尝试将特征向量加载到分类器中,例如 k 最近邻分类器。

我有我的 GLCM 代码,所以我得到了数字(特征向量)的对比度、相关性、能量、同质性。

我的问题是,如何保存所有训练图像中的每组特征向量?我在某处看到人们有一个 .set 文件要加载到分类器中(可能是特定分类器工具箱的特殊情况)。

load 'mydata.set';

例如。

我想它不一定是 .set 文件。
我只需要一种方法将所有训练图像中的所有特征向量存储在一个可以加载的单独文件中。

我有谷歌, and I found this that may be useful 但我不完全确定。

提前感谢您的时间和帮助。

问候。

【问题讨论】:

    标签: matlab image-processing classification glcm


    【解决方案1】:

    如果您将特征向量排列为名为@9​​87654321@ 的数组的列,则只需发出命令

    save('some_description.mat','X'); 
    

    或者,如果您希望保存文件是可读的,比如 ASCII,那么就使用这个代替:

    save('some_description.txt', 'X', '-ASCII');
    

    以后,当你想重复使用数据时,就说

    var = {'X'}; % <-- You can modify this if you want to load multiple variables.
    
    load('some_description.mat', var{:});
    load('some_description.txt', var{:}); % <-- Use this if you saved to .txt file.
    

    然后名为'X' 的变量将被加载到工作区,其列将是您之前计算的相同特征向量。

    您将需要替换上面每个文件名的some_description 部分,而是使用可以让您轻松识别文件中保存了哪些数据集的特征向量的东西(如果您有多个数据集)。除了X,您的特征向量数组也可能被称为其他名称,因此您可以相应地更改名称。

    【讨论】:

    • 非常感谢您的回答。那么我应该将一张训练图像的特征向量作为一个文件吗?还是只在同一列中输入来自同一图像的向量?
    • 例如,在保存文件中,来自训练图像 1:X = [7, 5, 3, 1] 或者我可以将它与训练图像 2 结合起来:X = [7, 5, 3 , 1; 8、4、2、0]
    • 我的选择是将它们结合起来,就像你的第二个例子一样。在这种情况下,您的语法将特征存储为行,但将它们存储为列可能更经济。如果您从单个图像计算许多不同的特征向量,您始终可以使用引用该图像的名称来保存它们。但是,如果每张图像只保存一个,我会将它们连接为X 的列,然后使用描述性文件名保存X。另外,如果您认为我的回答有帮助,请考虑投票或接受它(通过单击左侧的复选标记)。谢谢!
    • 拜托,只是出于兴趣,为什么存储在列中更好?是因为这样你每行都有相同的含义向量吗? (答案已接受,但没有足够的特权来投票..lol)再次非常感谢!
    • 我的想法是,您以后要对特征向量执行的大多数操作(例如,使用 PCA 或其他方法将它们投影到更小的空间)都是对列起作用的操作,而您必须弄乱标准算法来重新格式化它们以对行进行操作。否则,您将在任何时候想要对它们做某事时不断地转置您的特征向量。我不确定这是否重要,但既然您要继续保存它们,不妨将它们保存为列。
    猜你喜欢
    • 2018-12-30
    • 1970-01-01
    • 1970-01-01
    • 2019-02-06
    • 2014-05-11
    • 2019-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多