我很抱歉这可能是个愚蠢的问题。我有一个包含几个行向量的单元格数组(我不知道有多少,这可能会有所不同),我想在单个列数组中连接它们。例如:
A = {[1 2 3]; [4 6 5 4 3 2 21 1]; [3 2 1 1 5 6 78 4]; [3 4]}
我想获得B喜欢:
B = [1;2;3;4;6;5;4;3;2;21;1;3;2;1;1;5;6;78;4;3;4]
我试图在for循环中执行它,因为我不知道A中包含了多少个数组,在这个例子中它们是4但它们的数量可以变化,所以我写了类似的东西:
for i= 1:length(A)
B= [vertcat(cell2mat(A(i)))'];
end
但是这只在一列中写出了A的最后一个数组的结果。如何解决这个问题?
答案 0 :(得分:2)
如果转置public static void LoadAndTest(String filename_test, String filename_model) throws Exception {
BufferedReader datafile_test = readDataFile(filename_test);
Instances data_test = new Instances(datafile_test);
data_test.setClassIndex(data_test.numAttributes() - 1);
Classifier cls = (Classifier) weka.core.SerializationHelper.read(filename_model);
int act = 0;
for (int i = 0; i < data_test.numInstances(); i++) {
double pred = cls.classifyInstance(data_test.instance(i));
double real = data_test.instance(i).classValue();
if (pred==real) {
act = act + 1;
}
}
double pct = (double) act / (double) data_test.numInstances();
System.out.println("Accuracy = " + pct);
}
,则可以在整个单元格上使用A
,从而生成行向量。另一个转置为您提供了理想的结果。
cell2mat