- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 n x 2 数组“ppi”,具有整数值(有重复),第二个数组 n x 1“gid”,包含“ppi”中的唯一整数值,第三个数组“X0”,包含 0 和 1 值。下面是我想用 Java 实现的 MATLAB 代码-
MATLAB 版本-
gamma0 = 10; gamma1 = 10; beta = 20;
delta = 0;weight=10;
for i=1:length(gid)
gconn = union(ppi(find(ppi(:,1)==gid(i)),2), ppi(find(ppi(:,2)==gid(i)),1));
[a,b] = intersect(gid, gconn);
u1 = (X0(i)*weight + sum(X0(b)==1))/(weight+length(gconn));
u0 = ((1-X0(i))*weight + sum(X0(b)==0))/(weight+length(gconn));
mrfpdf(i) = exp((1-X0(i))*(gamma0-beta*u1)+X0(i)*(gamma1-beta*u0))/(exp(gamma0- beta*u1)+exp(gamma1-beta*u0));
end
相同实现的Java代码
double[] mrfpdf = new double[X0.length];
Integer[] X = new Integer[X0.length];
// find out unique class labels in ppi
Set<Double> gid_set = new LinkedHashSet<Double>();
for (int i = 0; i < ppi.length; i++) {
for (int j = 0; j < ppi[0].length; j++) {
gid_set.add(ppi[i][j]);
}
}
System.out.println("unique gid_set: " + gid_set);
Double[] gid = gid_set.toArray(new Double[gid_set.size()]);
Arrays.sort(gid);
int gamma0 = 10, gamma1 = 10, beta = 20, delta = 0;weight=10;
for (int i = 0; i < gid.length; i++) {
Set<Double> ppi1 = new HashSet<Double>();
Set<Double> ppi2 = new HashSet<Double>();
for (int k = 0; k < ppi.length; k++) {
if (ppi[k][0] == gid[i])
ppi1.add(ppi[k][1]);
if (ppi[k][1] == gid[i])
ppi2.add(ppi[k][0]);
}
Set<Double> gconn = new HashSet<Double>(ppi1);
gconn.addAll(ppi2);
Set<Double> a = new HashSet<Double>(gid_set);
a.retainAll(gconn);
java.util.List<Double> buff = new LinkedList<Double>(gid_set);
int[] b = new int[a.size()];// get index of intersection elements in this array
int x = 0;
for (double j : a) {
for (int c = 0; c < gid.length; c++) {
if (j == gid[c]) {
b[x] = c;
x++;
}
}
}
java.util.List<Double> X0_list = new ArrayList<Double>();
for (double z : X0) {
X0_list.add(z);
}
int sum1 = 0;
for (int y : b) {
if (X0_list.get(y) == 1)
sum1++;
}
int sum2 = 0;
for (int y : b) {
if (X0_list.get(y) == 0)
sum2++;
}
u1 = (int) ((X0[i] * weight + sum1) / (weight + gconn.size()));
u0 = (int) (((1 - X0[i]) * weight + sum2) / (weight + gconn.size()));
mrfpdf[i] = (Math.exp((1 - X0[i]) * (gamma0 - beta * u1) + X0[i]* (gamma1 - beta * u0)) / (Math.exp(gamma0 - beta * u1) + Math.exp(gamma1 - beta * u0)));
}// end for(int i : gid)
}
有人可以告诉我为什么 mrfpdf 数组中的值在 Java 和 Matlab 代码中不同吗? Java 代码仅产生 0.99 和 0.5 值,而 Matlab 没有任何 0.5 值
谢谢
最佳答案
您的 matlab 代码使用 double ,而 java 代码使用整数(例如 u0 和 u1)
关于java - Java 和 Matlab 中给出不同结果的指数函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19372707/
在 Matlab 中,您可以选择创建新的“示例”脚本文件以及脚本、函数、类等。创建它们时,它们会获得一个脚本图标。 它们与其他标准脚本文件的处理方式有何不同? 是否有关于这些示例脚本类型的预期用途的文
我正在运行一个不是我自己编写的大 m 文件,它依赖于某些子函数。我想知道是否在所有嵌套函数的任何地方都使用了特定函数(在我的例子中是函数 eig.m(计算特征值))。有没有快速的方法来做到这一点? 亲
Matlab中有一个函数叫 copulafit .我怎样才能看到这个函数背后的代码?许多 Python 的 numpy 和 scipy 函数在 Github 上很容易开源,但由于某种原因我在 Gith
我定义了一个抽象基类measurementHandler < handle它定义了所有继承类的接口(interface)。这个类的两个子类是a < measurementHandler和 b < me
假设有一个矩阵 A = 1 3 2 4 4 2 5 8 6 1 4 9 例如,我有一个 Vector 包含该矩阵每一列的“类”
我有一个在后台运行的 Matlab 脚本。随着计算的进行,它会不断弹出进度栏窗口。这很烦人。 问题是我没有自己写 Matlab 脚本,这是一段很长很复杂的代码,我不想搞砸。那么如何在不修改 Matla
有没有办法从一个 matlab 程序中检测计算机上正在运行多少个 matlab 进程? 我想要恰好有 n 个 matlab 进程在运行。如果我的数量太少,我想创建它们,如果数量太多,我想杀死一些。您当
我正在测试我们在 Matlab 中开发的一个独立应用程序,当时我注意到它的内存使用量(根据 Windows 任务管理器)达到了 16gb 以上的数倍峰值。我决定在编译版本后面的脚本上使用 profil
我面临着一个相当棘手的问题。在 Matlab 中,命令 S = char(1044) 将俄语字母 д 放入变量 S。但是 disp(S) 返回空白符号,尽管内容实际上是正确的: >> S = char
我在这行 MATLAB 代码中遇到内存不足错误: result = (A(1:xmax,1:ymax,1:zmax) .* B(2:xmax+1,2:ymax+1,2:zmax+1) +
我正在寻找一种在 MATLAB 中比较有限顺序数据与非确定性顺序的方法。基本上,我想要的是一个数组,但不对包含的元素强加顺序。如果我有对象 a = [x y z]; 和 b = [x z y]; 我希
我有一个由 1 和 0 组成的二维矩阵。 mat = [0 0 0 0 1 1 1 0 0 1 1 1 1 1 0 0 1 0 0 0 1 0 1 1 0 0 1]; 我需
我可以在 Matlab 中用一组 x,y 点绘制回归线。但是,如果我有一组点(如下图),假设我有四组点,我想为它们绘制四条回归线……我该怎么做?所有的点都保存在 x,y 中。没有办法将它们分开并将它们
我正在尝试使用以下代码在 MATLAB 中绘制圆锥体。但是,当 MATLAB 生成绘图时,曲面中有一个间隙,如下图所示。谁能建议关闭它的方法? clearvars; close all; clc; [
我有一个 map称为 res_Map,包含一组不同大小的数组。我想找到用于存储 res_Map 的总内存。 正如您在下面看到的,看起来 res_Map 几乎不占用内存,而 res_Map 中的各个元素
有没有办法在 MATLAB 中组合 2 个向量,这样: mat = zeros(length(C),length(S)); for j=1:length(C) mat(j,:)=C(j)*S;
已结束。此问题不符合 Stack Overflow guidelines 。它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答它。 关闭 5 年前
我正在尝试将MatLab中的t copula适配到我的数据,并且我的功能是: u = ksdensity(range_1, range_1,'function','cdf'); v = ksdens
大家好,我目前正在尝试使用论文“多尺度形态学图像简化”中的 SMMT 运算符 Dorini .由于没有订阅无法访问该页面,因此我将相关详细信息发布在这里: 请注意,我将相关文章的部分内容作为图片发布。
我在MATLAB中编写代码,需要使用一个名为modwt的函数,该函数同时存在于两个我同时使用的工具箱(Wavelet和WMTSA)中。问题在于,一个版本仅返回一个输出,而另一个版本则返回三个输出。我应
我是一名优秀的程序员,十分优秀!