Как я могу преобразовать код C # в MATLAB? - PullRequest
0 голосов
/ 09 августа 2010

У меня есть этот код C #, и я пытаюсь преобразовать его в код MATLAB.

float randomFloat()
{
    return (float)rand() / (float)RAND_MAX;
}
int calculateOutput(float weights[], float x, float y)
{
    float sum = x * weights[0] + y * weights[1] + weights[2];
    return (sum >= 0) ? 1 : -1;
}

Я не думаю, что мы можем использовать float и int в MATLAB. Как мне изменить код?

Ответы [ 2 ]

4 голосов
/ 09 августа 2010

первый просто: rand()

вторая функция может быть записана как:

if ( [x y 1]*w(:) >=0 )
  result = 1;
else
  result = -1;
end
1 голос
/ 09 августа 2010

Встроенная функция rand() уже делает то, что вы пытаетесь сделать с randomFloat().

Для calculateOutput вы можете использовать что-то довольно похожее на то, что выполучил, но, как вы говорите, вам не нужно объявлять типы:

function result = calculateOutput (weights, x, y)
s = x * weights(1) + y * weights(2) + weights(3);
if s >= 0
    result = 1;
else
    result = -1;
end
end

Обратите внимание, что векторы matlab основаны на одном, поэтому вам нужно настроить индексирование.

ЕслиВы хотите обобщить это на произвольные векторы, имеет смысл «векторизовать» это, но для этого простого случая такой прямой перевод должен подойти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...