From 2cb47b4191ce2353f8d2b147f2ad597e98c8c8c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lorena=20Garc=C3=ADa?= Date: Tue, 4 Aug 2015 15:58:24 +0200 Subject: [PATCH] Update data.cpp Update to allow loading data from a .csv file that only contains training samples values and not the associated responses. To allow this behavior, function must be called with parameters ResponsesStartIdx <= -2 and ResponsesEndIdx = 0 --- modules/ml/src/data.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/modules/ml/src/data.cpp b/modules/ml/src/data.cpp index d2ac18ff01..f224dbe642 100644 --- a/modules/ml/src/data.cpp +++ b/modules/ml/src/data.cpp @@ -636,9 +636,18 @@ public: vtypes[ninputvars] = VAR_CATEGORICAL; } - Mat(nsamples, noutputvars, CV_32F, &allresponses[0]).copyTo(tempResponses); - setData(tempSamples, ROW_SAMPLE, tempResponses, noArray(), noArray(), - noArray(), Mat(vtypes).clone(), tempMissing); + //If there are responses in the csv file, save them. If not, responses matrix will contain just zeros + if (noutputvars != 0){ + Mat(nsamples, noutputvars, CV_32F, &allresponses[0]).copyTo(tempResponses); + setData(tempSamples, ROW_SAMPLE, tempResponses, noArray(), noArray(), + noArray(), Mat(vtypes).clone(), tempMissing); + } + else{ + Mat zero_mat(nsamples, 1, CV_32F, Scalar(0)); + zero_mat.copyTo(tempResponses); + setData(tempSamples, ROW_SAMPLE, tempResponses, noArray(), noArray(), + noArray(), noArray(), tempMissing); + } bool ok = !samples.empty(); if(ok) std::swap(tempNameMap, nameMap);