小编zel*_*lus的帖子

MATLAB控制台输出

假设我有一个名为" x" 的变量x=5.

我想要做:

disp('x is equal to ' + x +'.');
Run Code Online (Sandbox Code Playgroud)

并打印代码:

x等于5.

这就是我习惯于用Java做事的方式,所以它们必须在MATLAB中以类似的方式完成.

谢谢

matlab console-output

25
推荐指数
1
解决办法
8万
查看次数

如何在Java对象中通知MATLAB对象?

为简单起见,假设我有一个Java对象,它以随机间隔的时间间隔生成一个随机数.我希望每次生成其中一个随机数时都会通知MATLAB对象(这样MATLAB对象就可以对数据执行某些任务).

我该如何实现这样的东西?如何让Java对象通知MATLAB对象发生了什么?

PS我是MATLAB中的强大程序员,但对Java来说还算新.

java matlab

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

在图形刻度中抑制指数格式化

勾选大于约10'000的刻度标签,例如格式化为1x10 ^ 4.而指数部分出现在相应的轴上方.这种不当行为在matlab中心也有很好的描述,但没有解决方案.

谢谢你的帮助.


'快速技巧'

set(gca, 'YTickLabel',get(gca,'YTick'))
Run Code Online (Sandbox Code Playgroud)

应用于bar3时无效,如下图所示.

bar3情节失败

matlab plot labels number-formatting

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

MATLAB - 缺少FFT的基波

我目前正在从事我的第四年项目(计算机科学),该项目涉及音乐的自动转录 - >乐谱.我现在在Matlab中这样做,但是必须在某个阶段转换为java.

我的问题:我的程序返回纯正弦音的正确音符,现在我遇到了从自然乐器演奏的音符中检索基频的问题.对于某些音符,代表音符基础的峰值似乎完全没有.例如,当我从车库带播放G3音符时,它显示为G4,因为我的情节中只出现了第1,第3,第5和第7次谐波.我试图添加图像,但这是我的第一篇文章,它不允许我.任何指向正确方向的人都会非常感激.

matlab signal-processing fft frequency

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

圆形中矩形的最大包装

我在纳米技术实验室工作,在那里我做硅片切割.(晶圆锯仅切割平行线)当然,我们试图最大化我们切割的模具的产量.所有的模具尺寸相同,可以是矩形或方形,并且模具都是从圆形晶片上切割下来的.基本上,我试图将最大的矩形包装成一个圆圈.

我对MATLAB有一个非常基本的理解和对微积分的中间理解.有没有(相对)简单的方法来做到这一点,还是我的方式超过我的头脑?

matlab geometry max packing

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

如何在MATLAB中设置绘图的默认线型?

我有一系列我想绘制的数据

temp=0.5*rand(500,10);
[~,offset]=meshgrid(1:500,1:10);
figure(101)
plot(temp+offset')
Run Code Online (Sandbox Code Playgroud)

如果线条颜色经过一个循环后,如何将线条样式设置为自动更改为下一个样式?

对于这个例子,我希望第8-10行具有不同的线条样式.我可以手动完成,但是如果我可以在某处设置默认选项,我想让Matlab为我做.

matlab plot coding-style linestyle

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

Numpy/Python与Matlab相比表现非常糟糕

新手程序员在这里.我正在编写一个程序来分析点(单元格)的相对空间位置.程序从数组中获取边界和单元格类型,第1列中的x坐标,第2列中的y坐标和第3列中的单元格类型.然后,它会检查每个单元格的单元格类型以及与边界的适当距离.如果它通过,则计算它与阵列中每个其他单元格的距离,如果距离在指定的分析范围内,则将其添加到该距离的输出数组.

我的单元格标记程序是在wxpython中,所以我希望在python中开发这个程序并最终将它粘贴到GUI中.不幸的是,现在python在我的机器上运行核心循环需要大约20秒,而MATLAB可以执行~15循环/秒.由于我计划在大约30个案例中对几个探索性分析类型进行1000次循环(具有随机比较条件),这不是一个微不足道的差异.

我尝试运行一个分析器,数组调用是1/4的时间,几乎所有其余的都是未指定的循环时间.

这是主循环的python代码:

for basecell in range (0, cellnumber-1):
    if firstcelltype == np.array((cellrecord[basecell,2])):
        xloc=np.array((cellrecord[basecell,0]))
        yloc=np.array((cellrecord[basecell,1]))
        xedgedist=(xbound-xloc)
        yedgedist=(ybound-yloc)
        if xloc>excludedist and xedgedist>excludedist and yloc>excludedist and    yedgedist>excludedist:
            for comparecell in range (0, cellnumber-1):
                if secondcelltype==np.array((cellrecord[comparecell,2])):
                    xcomploc=np.array((cellrecord[comparecell,0]))
                    ycomploc=np.array((cellrecord[comparecell,1]))
                    dist=math.sqrt((xcomploc-xloc)**2+(ycomploc-yloc)**2)
                    dist=round(dist)
                    if dist>=1 and dist<=analysisdist:
                         arraytarget=round(dist*analysisdist/intervalnumber)
                         addone=np.array((spatialraw[arraytarget-1]))
                         addone=addone+1
                         targetcell=arraytarget-1
                         np.put(spatialraw,[targetcell,targetcell],addone)
Run Code Online (Sandbox Code Playgroud)

这是主循环的matlab代码:

for basecell = 1:cellnumber;
    if firstcelltype==cellrecord(basecell,3);
         xloc=cellrecord(basecell,1);
         yloc=cellrecord(basecell,2);
         xedgedist=(xbound-xloc);
         yedgedist=(ybound-yloc);
         if (xloc>excludedist) && (yloc>excludedist) && (xedgedist>excludedist) && (yedgedist>excludedist);
             for comparecell = 1:cellnumber;
                 if secondcelltype==cellrecord(comparecell,3);
                     xcomploc=cellrecord(comparecell,1);
                     ycomploc=cellrecord(comparecell,2);
                     dist=sqrt((xcomploc-xloc)^2+(ycomploc-yloc)^2);
                     if (dist>=1) && (dist<=100.4999);
                         arraytarget=round(dist*analysisdist/intervalnumber); …
Run Code Online (Sandbox Code Playgroud)

python matlab numpy

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

如何在不重建的情况下触发VS post-build事件

我有一堆VS 2005 C++项目,它们构建了许多dll和可执行文件,它们是大型相互依赖文件层次结构的一小部分.为了调试文件,我通过post-build事件将构建的execs/dll复制到层次结构中.有时我更新我的层次结构,但让我的所有项目都是最新的 - 在这种情况下,我需要做的就是执行构建后事件(即复制文件)而不重建所有源.有办法吗?

rebuild visual-studio-2005 post-build-event visual-c++

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

在cmd行上运行svn命令时出错

我试图运行svn copy命令如下.

svn copy https://rb-svn1.in.company.com/svn/Project500/branches \
https://rb-1.in.company.com/svn/cust04/Project500/tags/V1.xx \
-m "Dummy test version V1.xx tag"
Run Code Online (Sandbox Code Playgroud)

但我收到错误信息说:

svn: Local, non-commit operations do not take a log message or revision properties
Run Code Online (Sandbox Code Playgroud)

谁能告诉我这里发生了什么?

跋蹉

svn tortoisesvn

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

在matlab中求和函数句柄

嗨,
我想总结两个函数句柄,但它不起作用.例如:

Y1 = @(X)(X*X);
Y2 = @(X)(X*X + 3*X);
Y3 = Y1 + Y2

我收到的错误是"???未定义的函数或方法'加上'为'function_handle'类型的输入参数."

这只是一个小例子,实际上我实际上需要迭代地总结大约500个相互依赖的函数.

编辑
Clement J.的解决方案确实有效但我无法将其概括为循环并遇到问题.我有功能s=@(x,y,z)((1-exp(-x*y)-z)*exp(-x*y));我有一个包含536个数据点的矢量v和另一个包含536个数据点的矢量w.我的目标是总结s(v(i),y,w(i)),因为i = 1 ... 536因此在变量y中得到一个函数,它是536个函数的总和.我尝试的语法是:

sum=@(y)(s(v(1),y,z2(1))); 
for i=2:536 
  sum=@(y)(sum+s(v(i),y,z2(i))) 
end
Run Code Online (Sandbox Code Playgroud)

math matlab function

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