1. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление

Вопрос: Перевод кода из C++ в PHP

Тема в разделе "C/C++/C#", создана пользователем CorvusCorax, 2 дек 2010.

Статус темы:
Закрыта.
  1. CorvusCorax

    CorvusCorax Гость

    Репутация:
    0
    Добрый день!
    Сишный скрипт нужно переписать на РНР. В частности, из вот этого фрагмента:

    Код:
    void ComputeFeedForwardSignals(double* MAT_INOUT,double* V_IN,double* V_OUT, double* V_BIAS,int size1,int size2,int layer)
    {
    int row,col;
    for(row=0;row < size2; row++) 
    {
    V_OUT[row]=0.0;
    for(col=0;col<size1;col++)V_OUT[row]+=(*(MAT_INOUT+(row*size1)+col)*V_IN[col]);
    V_OUT[row]+=V_BIAS[row];
    if(layer==0) V_OUT[row] = tanh(V_OUT[row]);
    if(layer==1) V_OUT[row] = logistic(V_OUT[row]);
    }
    }
    У меня получилось вот это:

    PHP:
    function ComputeFeedForwardSignals ($MAT_INOUT$V_IN$V_OUT$V_BIAS$size1$size2$layer) {

    for(
    $row=0$row $size2$row++) {
    $V_OUT[$row]=0.0;
    for(
    $col=0$col<$size1$col++) $V_OUT[$row] = $V_OUT[$row] + ...
    $V_OUT[$row] = $V_OUT[$row] + $V_BIAS[$row];
    if(
    $layer==0$V_OUT[$row] = tanh($V_OUT[$row]);
    if(
    $layer==1$V_OUT[$row] = logistic($V_OUT[$row]);
    }

    }
    Непонятно только, что делать с выражением (*(MAT_INOUT+(row*size1)+col)*V_IN[col]);
    Что тут имеется в виду? Прошу объяснить, что делает это выражение.

    Добавлено: MAT_INOUT+(row*size1)+col

    Конкретно вот это интереснее всего. Это обращение к элементу массива, или что?
    MAT_INOUT - двумерный массив.
     
  2. lazybiz

    lazybiz Well-Known Member

    Репутация:
    0
    Регистрация:
    3 ноя 2010
    Сообщения:
    1.339
    Симпатии:
    0
    Судя по определению он одномерный, просто адресуется как двумерный.

    Так вот если бы он был определен как двумерный, запись:
    Код:
    *(MAT_INOUT+(row*size1)+col)
    выглядела бы как:
    Код:
    MAT_INOUT[row][col]
    Да.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей