Tag: matlab

MATLAB中的10倍SVM分类示例

我需要一个描述性的例子来说明如何在两类数据集上进行10倍的SVM分类。 在MATLAB文档中只有一个例子,但不是10倍。 有人能帮我吗?

你如何以exception安全的方式处理MATLAB中的资源? (比如“try … finally”)

由于在MATLAB中try-catch块没有finally子句,所以我发现自己编写了很多如下所示的代码: fid = fopen(filename); if fid==-1 error('Couldn''t open file'); end try line = getl(fid); catch ME fclose(fid); rethrow ME; end fclose(fid); 我觉得有两个地方fclose函数丑陋和容易出错。 有没有更好的方法来做到这一点?

如何分配对angular线上的值?

假设我有一个N×NmatrixA,一个由数字1:N的子集和一个K值组成的索引向量V,我想这样做: for i = V A(i,i) = K end 有没有办法做到这一点在一个声明瓦特/vector化? 例如A( 某物 )= K 声明A(V,V) = K将不起作用,它分配非对angular元素,这不是我想要的。 例如: >> A = zeros(5); >> V = [1 3 4]; >> A(V,V) = 1 A = 1 0 1 1 0 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 0 […]

MATLAB最接近命名空间的是什么?

我们的实验室里有很多MATLAB代码。 问题是没有办法来组织它。 由于所有函数都必须位于同一个文件夹中(或者你必须在MATLAB的path环境variables中添加一堆文件夹),所以我们注定要在同一个文件夹中加载多个文件,全局命名空间。 有没有更好的方式来组织我们的文件和function? 我真的希望有某种模块系统…

从MATLAB调用Java?

我希望Matlab程序调用一个java文件,最好是一个例子。

find曲线上的最佳折衷点

说我有一些数据,为此我想在它上面安装一个参数化模型。 我的目标是find这个模型参数的最佳值。 我正在使用AIC / BIC / MDLtypes的标准进行模型select,这种标准奖励低误差的模型,但也惩罚高复杂度的模型(我们正在寻求最简单但最令人信服的解释,可以这么说, 奥卡姆的剃刀 )。 接着上面,这是我得到的三种不同的标准(两个要最小化,一个要最大化)的例子: 在视觉上,你可以很容易地看到肘部的形状,你会为该地区的某个地方的参数select一个值。 问题是我正在做大量的实验,我需要一种方法来find这个值,而不需要干预。 我的第一个直觉就是试图从angular落画出一个45度angular的直线,并继续移动直到它与曲线相交,但是说起来容易做起来难。:)如果曲线有些偏斜,也可能会错过感兴趣的区域。 任何想法如何实现这个,或更好的想法? 以下是重现上述其中一个地块所需的样本: curve = [8.4663 8.3457 5.4507 5.3275 4.8305 4.7895 4.6889 4.6833 4.6819 4.6542 4.6501 4.6287 4.6162 4.585 4.5535 4.5134 4.474 4.4089 4.3797 4.3494 4.3268 4.3218 4.3206 4.3206 4.3203 4.2975 4.2864 4.2821 4.2544 4.2288 4.2281 4.2265 4.2226 4.2206 4.2146 4.2144 4.2114 4.1923 […]

两幅图像的互信息和联合熵 – MATLAB

我有两个黑白图像,我需要计算互信息。 Image 1 = X Image 2 = Y 我知道互信息可以定义为: MI = entropy(X) + entropy(Y) – JointEntropy(X,Y) MATLAB已经具有内置函数来计算熵,但不计算联合熵。 我想真正的问题是:我如何计算两幅图像的联合熵? 这里是我想要find联合熵的图像的一个例子: X = 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Y = 0 […]

MATLAB:使用ode45时可能有两个事件值吗?

我想要对运动方程的ode45计算有两个限制:位置和时间。 我已经有时间事件的工作,但我不知道是否和如何添加另一个事件来限制位置。 编辑:我也有许多不同的粒子耦合在一起ODE公式,需要他们停止一个人,一旦他们到达“屋顶”,因为他们都以不同的速度旅行…我能通过事件实现这一点? 我有一个想法,我将如何做到这一点,但其非常复杂,可能会很慢…

在Matlab中运行长度编码

我很新的MatLab,我有运行长度编码代码,但它似乎不工作,你能帮我吗? 我有这个input: ChainCode = 11012321170701000700000700766666666666665555555544443344444333221322222322 我想把它变成RLE输出: (1,2), (0,1), (1,1), (2,1), (3,1), (2,1), (1,2), (7,1), (0,1), (7,1), (0,1), (1,1), (0,3), (7,1), (0,5), (7,1), (0,2), (7,1), (6,13), (5,8), (4,4), (3,2), (4,5), (3,3), (2,2), (1,1), (3,1), (2,5), (3,1), (2,2) 这是我的代码: lengthcode = 1; N = 1; for i = 2:length(ChainCode) if x(i)==x(i-1) N = N + 1; valuecode(N) […]

如何在MATLAB中调整matrix?

假设我有一个1×12的matrix,我想把它调整到一个4×3的matrix。 我怎么能这样做? 我目前的解决方法是丑陋的: for n = 1:(length(mat)/3) out(n,1:3) = mat( ((n-1)*3 + 1):((n-1)*3 + 3) ); end 有没有更好的方法来做到这一点?