Странные выходные данные при прохождении через два класса

0

У MY stattic llib есть некоторые неустойчивые числовые результаты: поэтому я только начал искать причину: и нашел некоторые очень странные выходные данные с android_log в стороне NDK c++.

Это моя часть кода, где находится журнал:

Данные вводятся матрицейd

SpectralClustering::SpectralClustering(Eigen::MatrixXd& data, int numDims)
    : mNumDims(numDims), mNumClusters(0)
{
    Eigen::MatrixXd Deg;

    for ( int ijk2 = 0; ijk2 <data.rows(); ++ijk2) {
        double fde=data(ijk2,0);
        LOGD( "This is a number from JNI: %d", fde );
    }

    Eigen::EigenSolver<Eigen::MatrixXd> es(data,true);
}

Данные имеют номера между -1, 1 (я проверяю его нормально), но когда я передаю и создаю объект с этим классом:

SpectralClustering* cls = new SpectralClustering(DATA, spec_vec4);

Выходные данные очень странные, что-то около 16058451212.....

Я предполагаю, что проблема будет в том, что вокруг и в памяти, но когда я удалю это так же.

Теги:
pointers
eigen
android-ndk

1 ответ

1

Хорошо, вы печатаете double как int, так что у вас есть неопределенное поведение в вашем коде.

Возможно, вы захотите использовать правильный формат с плавающей запятой "%f". См., Например, эту ссылку printf.

  • 0
    Спасибо! да ошибка мз, так что проблем не будет ..

Ещё вопросы

Сообщество Overcoder
Наверх
Меню