0
我有一个100x200的输入和一个1x100的目标矩阵,我用它来运行一个gridsearch并在python中创建一个分类器。但是,我得到的错误是我的训练集的目标数据不是数组。我已经试过:如何将Matlab矩阵转换为python数组
target=np.asarray(matTarget)
凡matTarget只是我使用scipy.io.loadmat从MATLAB进口的目标。
我确切的错误是
len() of unsized object
当我尝试target.size得到了一个空白的大小为好。
如果我不这样做阵列转换,然后我得到
Expected array-like (array or non string sequence) got {'_header_': b'Matlab matfile ... Array([[1],[1]...)}
我仍然在Matlab原始矩阵和也使用np.array代替asarray尝试。
如果我做print(matTarget.keys())
然后我得到( '头',' 版 '' 全局”, 'y_train'])
y_train是脚垫文件本身
的名字
因此,在你网上有,为MATRIX一样“矩阵的名字”?所以我从Matlab导入的矩阵使用scipy.io.loadmat称为matTarget。我试图创建的矩阵只是目标。所以如果我按照你的代码写代码,那么我会得到'target = matTarget ['target']',但是如果target被定义为它自己的东西,那么它是如何工作的呢? – a13a22
@aksharagarwal不,“矩阵的名称”是一个字符串文字,您应该用matlab文件中矩阵的实际名称替换它。 'matrix'是一个变量,它存储对'matTarget [']'返回的矩阵的引用。 'matTarget'是一个字典,其中包含矩阵的名称作为关键字,矩阵本身作为值。你可以发布'print(matTarget.keys())'的输出吗?(可能是你的问题的扩展)? –
我将该输出添加到问题中。所以我应该运行'target2 = matTarget('y_train'),然后将目标定义为np.asarray(target2)?这样做可能会导致字典不可调用的错误 – a13a22