如何将C#代码转换为MATLAB?

时间:2010-08-09 10:51:10

标签: matlab

我有这个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;
}

我认为我们不能在MATLAB中使用floatint。如何更改代码?

2 个答案:

答案 0 :(得分:4)

第一个就是:rand()

第二个函数可以写成:

if ( [x y 1]*w(:) >=0 )
  result = 1;
else
  result = -1;
end

答案 1 :(得分:1)

内置函数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向量是基于一的,因此您需要调整索引。

如果你想将它推广到任意向量,那么“向量化”它是有意义的,但对于这个简单的情况,像这样的直接翻译应该没问题。