在Matlab中实现方程式

时间:2019-06-28 03:24:43

标签: matlab deep-learning svm

我正在尝试实现以下等式:

x = -b/N    if a*b<1
x = 0       otherwise

其中Na的大小。该公式很简单,但是我收到的ab的数据采用不同的格式。 a是4D数值数组(1x1x {K x N),而b是分类数组(长度为K的向量)。您能给我建议我如何实现这个方程式吗?

样本输入

% a must be a 4-d numeric array of shape (1 x 1 x i x j), where i is the category, and j is the observation ID 
a = val(:,:,1,1)=0.67 % (it means, the probability of the first observation  stays in category 1 is 0.67)
    val(:,:,2,1)=0.33 % (it means, the probability of the first observation  stays in category 2 is 0.33)
    val(:,:,1,2)=0.55
    val(:,:,2,2)=0.45
% b must be a categorical vector
b=
    0(category 1)
    1(category 2)

我面临的问题

计算上述方程式时,我面临的主要问题是如何操作4D数组和分类矢量。

我尝试通过以下方式解决该问题:

我的代码:

[m,n,o,p]=size(a);
x=zeros(m,n,o,p);
c=double(string(categorical(b)));
for i=1:p
    for j=1:o
        mul=c(i)*a(:,:,j,i);
        if(mul<1)
            x(:,:,j,i)=-c(i)/p;
        else
            x(:,:,j,i)=0;
        end
    end
end

求解方程式正确吗?

0 个答案:

没有答案