小编Joh*_*ohn的帖子

如果在matlab中矢量化

我有一个布尔数组调用它flag.

我有两个数字数组ifTrue,ifFalse.所有这些数组都是相同的大小.出于这个问题的目的,假设这些数组中的每个元素都是唯一的.

我想要一个g具有该属性的函数

a = g(flag, ifTrue, ifFalse)

all(flag == (a == ifTrue))
all(~flag == (a == ifFalse))
Run Code Online (Sandbox Code Playgroud)

或者用英语,我想g在if 为true ifTrue时返回元素flag,ifFalseflagfalse 时返回元素.

或者,在matlab中,我可以用循环来做到这一点:

a = zeros(size(ifTrue));
for i = 1 : numel(ifTrue);
    if flag(i)
         a(i) = ifTrue(i)
    else
         a(i) = ifFalse(i)
    end
end
Run Code Online (Sandbox Code Playgroud)

有矢量化的方法吗?

谢谢

matlab vectorization conditional-operator

6
推荐指数
1
解决办法
719
查看次数

关于如何使用英特尔集成性能基元评估openCV的建议?

我们有相当数量的openCV代码,我们计划调查英特尔的IPP,并了解我们在应用程序中可以实现哪种加速.

英特尔有一篇关于如何链接OpenCV和IPP的白皮书. 将英特尔IPP与OpenCV一起使用 在某些情况下,链接可能是自动的,但支持的数量尚不清楚.

我们是一家门店,对任何战争故事或者在进行此类评估时需要注意的问题/问题感兴趣.

谢谢

c++ performance opencv image-processing intel-ipp

6
推荐指数
1
解决办法
980
查看次数

你怎么称呼迭代洪水填充算法?

我有一个算法,我正在使用我的工作,但我需要一个名称.我很好奇文献中是否存在这种算法的名称.

该算法采用像素化高度图和起始点s,并返回修改的像素化高度图.对于返回高度图中的每个像素p,p是您必须通过以从s到p 的最低高度值.

例如,考虑Matlab中的"峰值"图像: imagesc(peak) 来自Matlab的峰值图像.

并使用像素(20,20)作为种子,然后我描述的这个修改后的高度图看起来像这样: 在此输入图像描述.

我把这称为洪水填充算法,直到我的同事们指出洪水填充通常是二进制地图.所以,我已经把这称为"渐变洪水填充"算法.

我们还没有发现文献中定义的这种操作.有什么建议?

algorithm matlab flood-fill

5
推荐指数
1
解决办法
802
查看次数

如何在后台更新MATLAB GUI?

我有一个MATLAB GUI和一个将数据写入文件的独立应用程序.我希望我的MATLAB GUI定期检查文件,并在更改时更新GUI.

在Java中,我使用SwingUtils.Timer(sp?)对象来做这样的事情.MATLAB有定时器功能吗?我可以编写一个java类并且我想这样做,但是想要一个快速和脏的演示,最好是纯MATLAB.

matlab user-interface multithreading timer

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

如何在matlab中从大散点图中找到索引?

我有一个散点图,大约有6000个项目.

x = rand(1,6000);
y = rand(1,6000);
scatter(x,y)
Run Code Online (Sandbox Code Playgroud)

有没有办法使用GUI查找给定点的索引?(我们放大数据,并希望找到产生一个点的具体指数)

matlab scatter-plot

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

以编程方式确定脚本是否正常发布或执行

发布R2016a之前,出版 MATLAB中的方式来记录一个脚本的结果.我发现当我手动运行脚本时,我经常pause在整个脚本中放置命令.有没有一种简单的方法来确定脚本是否已发布?然后,我可以将我的暂停包含在一些代码中:

if isNotPublishing
    pause();
end
Run Code Online (Sandbox Code Playgroud)

我的google foo让我无法找到解决方案.

matlab publish

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

卷入使用Mathematica中的插值函数

我正在使用Mathematica 7.

我有一个插值函数,这是一个例子:

pressures = 
  WeatherData["Chicago", "Pressure", {2010, 8}] // 
     DeleteCases[#, {_, _Missing}] & // 
    Map[{AbsoluteTime[#[[1]]], #[[2]]} &, #] & // Interpolation;
Run Code Online (Sandbox Code Playgroud)

我想计算它的衍生物,这是直截了当的:

dpressures = D[pressures[x], x]
Run Code Online (Sandbox Code Playgroud)

现在,如果你绘制这个功能

Plot[3600*dpressures, {x, AbsoluteTime[{2010, 8, 2}], AbsoluteTime[{2010, 8, 30}]}]
Run Code Online (Sandbox Code Playgroud)

(抱歉,不知道如何从Mathematica中发布图像,并且没有时间弄明白.)你会发现它非常嘈杂.所以,我想说清楚它.我的第一个想法是使用Convolve,并将其与高斯内核集成,如下所示:

a = Convolve[PDF[NormalDistribution[0, 5], x], 3600*dpressures, x, y]
Run Code Online (Sandbox Code Playgroud)

返回

360 Sqrt[2/\[Pi]] Convolve[E^(-(x^2/50)), InterpolatingFunction[{{3.48961266 10^9, 3.49228746 10^9}},<>], ][x], x, y]
Run Code Online (Sandbox Code Playgroud)

这对我来说看起来很合理.不幸的是,我相信我在某个地方犯了一个错误,因为我回来的结果似乎不是可评估的.那是:

a /. y -> AbsoluteTime[{2010, 8, 2}]
Run Code Online (Sandbox Code Playgroud)

返回

360 Sqrt[2/\[Pi]] Convolve[E^(-(x^2/50)), InterpolatingFunction[{{3.48961266 10^9, 3.49228746 10^9}},<>][x], x, 3489696000]]
Run Code Online (Sandbox Code Playgroud)

这不是我想要的东西我期待-1到1之间的数字.

wolfram-mathematica curvesmoothing convolution

3
推荐指数
1
解决办法
1502
查看次数

robocopy/move在同一个本地硬盘上实际上是"移动"目录吗?

MSDOS move sourceDirectory destinationDirectory命令何时sourceDirectorydestinationDirectory在同一个硬盘驱动器上只是移动一些链接,并没有实际将所有文件复制到新位置,然后删除它们.

当和在同一个硬盘驱动器上时,是否robocopy sourceDirectory destinationDirectory /mov像MSDOS move命令一样?sourceDirectorydestinationDirectory

我能够找到的所有robocopy文档在这一点上都不清楚.

我正在运行64位Windows7以防万一.

directory robocopy

2
推荐指数
1
解决办法
1057
查看次数

更好的代码来访问matlab结构数组中的字段?

我有一个MATLAB结构阵列Modles1大小(1x180)的具有字段a,b,c,..., z.

我想了解每个字段中有多少个不同的值.即

max(grp2idx([foo(:).a]))
Run Code Online (Sandbox Code Playgroud)

如果该字段a是双倍的,则上述工作. {foo(:).a}需要在字段a是字符串/ char的情况下使用.

这是我目前执行此操作的代码.我讨厌必须使用eval,本质上是一个switch语句.有没有更好的办法?

names = fieldnames(Models1);
for ix = 1 : numel(names)
    className = eval(['class(Models1(1).',names{ix},')']);
    if strcmp('double', className) || strcmp('logical',className)
        eval([' values = [Models1(:).',names{ix},'];']);
    elseif strcmp('char', className)
        eval([' values = {Models1(:).',names{ix},'};']);
    else
        disp(['Unrecognized class: ', className]);
    end
    % this line requires the statistics toolbox.
    [g, gn, gl] = grp2idx(values);
    fprintf('%30s : %4d\n',names{ix},max(g));
end
Run Code Online (Sandbox Code Playgroud)

reflection matlab structure

1
推荐指数
1
解决办法
756
查看次数

使用TFS,如何确定何时将方法添加到源文件?

我有一个源文件,它大约有10年历史,有100个更改.我能够使用手动二进制搜索来识别添加特定方法的点.

在TFS中有更有效的方法吗?

tfs

1
推荐指数
1
解决办法
35
查看次数