我有一个以下 matlab 代码,我不知道如何对称为“数据”的矩阵进行切片。
简而言之,代码的作用是:
在每次迭代中,创建一个名为“newOrder”的重新排序,并使用重新排序的向量“y”和重新排序的矩阵“data”调用函数“train”。在这里,“重新排序”使用所有元素而不是它们的子集。循环运行速度快很重要,所以我担心这个警告。
w = []; data = sparse(double(X(:,selTrain)));
parfor ci = 1:length(classes)
y = 2*(imageClass(selTrain)==ci)'-1;
newOrder = [find(y==1); find(y==-1)];
this_svm = train(y(newOrder), data(:, newOrder), ' -s 3 -B 1 -c 10 -q', 'col');
w(:,ci) = this_svm.w';
end
我没有收到错误,而是收到警告:在 parfor 循环中,变量数据已被索引但未切片。这可能会导致不必要的通信开销。
我需要为组合许多重新排序执行此操作。所以我花了很多时间绝望地尝试一堆东西。任何帮助或建议都会很棒。
谢谢你。