标签: matlab

平行四边形内的随机点

我有一个4边凸多边形由2D中的4个点定义,我希望能够在其中生成随机点.

如果它真的简化了问题,我可以将多边形限制为平行四边形,但更常见的答案是首选.

生成随机点直到其中一个在多边形内部将不起作用,因为它所花费的时间实际上是不可预测的.

random algorithm matlab 2d polygon

48
推荐指数
3
解决办法
3万
查看次数

在numpy数组中查找相同值的序列长度(运行长度编码)

在一个pylab程序(也可能是一个matlab程序)中,我有一个数字表示距离的numpy数组:d[t]是时间距离t(我的数据的时间跨度是len(d)时间单位).

我感兴趣的事件是当距离低于某个阈值时,我想计算这些事件的持续时间.很容易得到一组布尔值b = d<threshold,问题归结为计算真实单词长度的顺序b.但我不知道如何有效地做到这一点(即使用numpy原语),并且我使用数组并进行手动更改检测(即当值从False变为True时初始化计数器,只要值为True就增加计数器,当值返回False时,将计数器输出到序列.但这非常缓慢.

如何在numpy数组中有效地检测那种序列?

下面是一些python代码,说明我的问题:第四个点需要很长时间才能出现(如果没有,增加数组的大小)

from pylab import *

threshold = 7

print '.'
d = 10*rand(10000000)

print '.'

b = d<threshold

print '.'

durations=[]
for i in xrange(len(b)):
    if b[i] and (i==0 or not b[i-1]):
        counter=1
    if  i>0 and b[i-1] and b[i]:
        counter+=1
    if (b[i-1] and not b[i]) or i==len(b)-1:
        durations.append(counter)

print '.'
Run Code Online (Sandbox Code Playgroud)

python matlab numpy matplotlib

48
推荐指数
5
解决办法
2万
查看次数

48
推荐指数
2
解决办法
9万
查看次数

MATLAB - 如何将子图缩放在一起?

我在一个图中有多个子图.每个图的X轴是相同的变量(时间).每个图上的Y轴是不同的(它代表什么和数据的大小).

我想要一种方法同时放大所有绘图的时间尺度.理想情况下,通过在其中一个图上使用矩形缩放工具,并使其他图相应地更改其X限制.对于所有这些,Y限制应该保持不变.自动拟合数据以在Y方向上填充图是可以接受的.

(这个问题几乎与Stack Overflow问题一相同Matplotlib/Pyplot:如何将子图缩放在一起?(MATLAB除外))

matlab plot zoom

48
推荐指数
2
解决办法
5万
查看次数

.m文件为MATLAB/Octave for Sublime Text

Sublime将.m文件视为Objective C文件.

我已经获得了一堆MATLAB/Octave文件来使用Octave,所有这些都带有.m扩展.

如果我将扩展名更改为.matlab,则Sublime会识别它​​们并正确格式化它们,但是Octave不会看到它们.

我想要:

(1)改变Sublime,使其识别.m为MATLAB/Octave而不是Objective C,或

(2)告诉Octave认识.matlab它可以运行的东西.

我已经在Sublime和Octave方面捅了一下,但无济于事(不是答案),而且我是Octave noob.谢谢.

matlab octave sublimetext sublimetext2

48
推荐指数
1
解决办法
4万
查看次数

如何有效地在MATLAB中规范化矢量?任何相关的内置功能?

我在MATLAB中规范化矢量V如下:

normalized_V = V/norm(V);
Run Code Online (Sandbox Code Playgroud)

然而,它是在MATLAB中规范化矢量的最优雅(有效)方法吗?

performance matlab vector

47
推荐指数
3
解决办法
19万
查看次数

在曲线上找到最佳权衡点

假设我有一些数据,我想在其上安装一个参数化模型.我的目标是为此模型参数找到最佳值.

我正在使用AIC/BIC/MDL类型的标准进行模型选择,这种标准可以奖励低误差的模型,但也会对高复杂度的模型进行惩罚(我们正在寻找对这些数据最简单但最有说服力的解释,可以这么说,奥卡姆的剃刀).

按照上面的说明,这是我得到的三种不同标准的例子(两个要最小化,一个要最大化):

AIC-BIC 适合

在视觉上你可以很容易地看到肘部形状,你会在该区域的某处选择一个参数值.问题是我正在为大量实验做这件事,我需要一种方法来找到这个值而不需要干预.

我的第一个直觉是尝试从角落以45度角绘制一条直线并继续移动它直到它与曲线相交,但这说起来容易做起来:)如果曲线有些偏斜,它也会错过感兴趣的区域.

关于如何实现这个或更好的想法的任何想法?

以下是重现上述一个图表所需的样本:

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 4.19 4.1894 4.1785 4.178 4.1694 4.1694 4.1694 4.1556 4.1498 4.1498 4.1357 4.1222 4.1222 4.1217 4.1192 4.1178 4.1139 4.1135 4.1125 4.1035 4.1025 4.1023 4.0971 4.0969 4.0915 …
Run Code Online (Sandbox Code Playgroud)

algorithm matlab data-modeling model-fitting

47
推荐指数
6
解决办法
2万
查看次数

在MATLAB中查找当前m文件的位置

我正在许多不同的位置处理我的MATLAB代码,如果我能让代码知道它在计算机上的位置,那将会非常有用.我认为有一个函数能够准确地提供这些信息,但我记不起它的名称或在Google上找到它.

我的想法是,我有一个函数myFunc需要一个文件在自己的目录中,该文件可以位于不同计算机上的不同位置.所以在myFunc我想要做这样的事情:

dir = theFunctionImLookingFor;
system(fullfile(dir, 'someApp.exe'));
Run Code Online (Sandbox Code Playgroud)

(也可能是我正在寻找的函数不返回目录,而是目录+ m文件名,但这对我来说没什么区别.)

matlab

47
推荐指数
3
解决办法
5万
查看次数

Parfor for Python

我正在寻找一个确定的答案MATLAB的parfor for Python(Scipy,Numpy).

有没有类似于parfor的解决方案?如果没有,创建一个的复杂性是什么?

更新:这是我需要加速的典型数值计算代码

import numpy as np

N = 2000
output = np.zeros([N,N])
for i in range(N):
    for j in range(N):
        output[i,j] = HeavyComputationThatIsThreadSafe(i,j)
Run Code Online (Sandbox Code Playgroud)

重计算函数的一个例子是:

import scipy.optimize

def HeavyComputationThatIsThreadSafe(i,j):
    n = i * j

    return scipy.optimize.anneal(lambda x: np.sum((x-np.arange(n)**2)), np.random.random((n,1)))[0][0,0]
Run Code Online (Sandbox Code Playgroud)

python parallel-processing matlab

47
推荐指数
4
解决办法
3万
查看次数

LNK2038:检测到'RuntimeLibrary'不匹配:值'MT_StaticRelease'与file.obj中的值'MD_DynamicRelease'不匹配

我正在整合Matlab,CCuda在一个项目中.我使用Matlab mix将c语言编写的matlab mx函数与cuda运行时库连接起来,出现了关于静态发布中的冲突和c文件与库之间的动态发布的链接错误.谁能解决这个问题?

error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MD_DynamicRelease' in file.obj. 
Run Code Online (Sandbox Code Playgroud)

c++ matlab cuda visual-c++

47
推荐指数
4
解决办法
7万
查看次数