有人能帮助我吗?如果我想将struct数组转换为double或complex double to double,我需要做什么,因为我需要将它用作svm classifier的输入。谢谢高级。
答案 0 :(得分:0)
假设您的数据结构看起来像这样(每位患者有7名患者,19个特征和150个特征向量):
data =
p1: [150x19 double]
p2: [150x19 double]
p3: [150x19 double]
p4: [150x19 double]
p5: [150x19 double]
p6: [150x19 double]
p7: [150x19 double]
并且您希望将它们连接成1050x19 double
形式的一个大矩阵(您不会在训练SVM时区分患者),然后以下代码片段可以解决这个问题:
% Generate test data
data.p1(:,1:19) = randn(150,19);
data.p2(:,1:19) = randn(150,19);
data.p3(:,1:19) = randn(150,19);
data.p4(:,1:19) = randn(150,19);
data.p5(:,1:19) = randn(150,19);
data.p6(:,1:19) = randn(150,19);
data.p7(:,1:19) = randn(150,19);
% Add each patient features to cell array
data_cell = cellfun(@(field) data.(field), fieldnames(data), 'UniformOutput', false);
% Vertically concatenate the entries in the cell array from above
data_combined = vertcat(data_cell{:}); %1050x19 double
您还需要以类似的方式连接group
标签,确保不会忽略哪个组标签与组合数据中的哪个特征向量相对应。
祝你好运