标签: matlab

从python调用MATLAB函数

是否可以在Python中运行MATLAB函数?我搜索互联网,我只能找到PyMat.坏的是编译版本只支持Python2.2,我使用的是2.6.所以我尝试下载源代码,所以我可以自己编译.但我无法编译它,VC++ express似乎没有必要的功能来编译它.有没有人有PC的编译版本?或任何替代PyMat?谢谢

python matlab visual-c++

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

如何在MATLAB中创建新图?

通常当我在MATLAB中绘图时,它总是绘制相同的数字.如何让它以新的数字绘制?

我知道这是非常基础的,但我没有使用谷歌搜索找到它.

matlab plot figure

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

如何在Matlab中迭代列向量?

可能重复:
如何在MATLAB中迭代n维矩阵中的每个元素?

我有一个列向量list,我想迭代这样:

for elm in list
   //do something with elm
Run Code Online (Sandbox Code Playgroud)

怎么样?

iteration matlab

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

在python中读取v 7.3 mat文件

我正在尝试使用以下代码读取matlab文件

import scipy.io
mat = scipy.io.loadmat('test.mat')
Run Code Online (Sandbox Code Playgroud)

它给了我以下错误

raise NotImplementedError('Please use HDF reader for matlab v7.3 files')
NotImplementedError: Please use HDF reader for matlab v7.3 files
Run Code Online (Sandbox Code Playgroud)

所以任何人都可以遇到同样的问题,并可以取悦任何示例代码

谢谢

python io matlab mat-file

52
推荐指数
6
解决办法
5万
查看次数

MATLAB - 函数的多个返回值?

我在matlab中编写了2个函数,一个初始化函数和一个将项插入数组的函数,将其视为双向链表.但是,我的initialize函数只返回"ans ="和初始化数组.我怎样才能设置其他变量的值?这是我的代码:

function [ array, listp, freep ] = initialize( size )
    array = zeros(size, 3);
    listp = 0;
    freep = 1;
end
Run Code Online (Sandbox Code Playgroud)

matlab return-value

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

MATLAB中的索引向量是否效率低下?

背景

我的问题是由简单的观察推动的,这有点破坏了经验丰富的MATLAB用户经常持有/做出的信念/假设:

  • 当涉及内置函数和基本语言特性(如索引向量和矩阵)时,MATLAB得到了很好的优化.
  • MATLAB中的循环很慢(尽管有JIT),如果算法可以以原生的"矢量化"方式表示,通常应该避免.

底线:核心MATLAB功能是高效的,并且尝试使用MATLAB代码超越它是很困难的,如果不是不可能的话.

研究向量索引的性能

下面显示的示例代码是基本的:我为所有向量条目指定标量值.首先,我分配一个空向量x:

tic; x = zeros(1e8,1); toc
Elapsed time is 0.260525 seconds.
Run Code Online (Sandbox Code Playgroud)

x,我想它所有的项目设置为相同的值.在实践中,你会采用不同的方式,例如,x = value*ones(1e8,1)但这里的重点是研究向量索引的性能.最简单的方法是写:

tic; x(:) = 1; toc
Elapsed time is 0.094316 seconds.
Run Code Online (Sandbox Code Playgroud)

我们称之为方法1(从赋值的值x).它看起来非常快(至少比内存分配更快).因为我在这里做的唯一事情就是对内存进行操作,我可以通过计算获得的有效内存带宽并将其与计算机的硬件内存带宽进行比较来估算此代码的效率:

eff_bandwidth = numel(x) * 8 bytes per double * 2 / time
Run Code Online (Sandbox Code Playgroud)

在上面,我乘以2因为除非使用SSE流,否则在存储器中设置值要求向量既可以从存储器读取也可以写入存储器.在上面的例子中:

eff_bandwidth(1) = 1e8*8*2/0.094316 = 17 Gb/s
Run Code Online (Sandbox Code Playgroud)

我的计算机的STREAM基准内存带宽约为17.9 Gb/s,所以确实如此 - 在这种情况下,MATLAB可以提供接近峰值的性能!到现在为止还挺好.

Method 1 is suitable if you want to set all …

arrays performance matlab loops vectorization

51
推荐指数
3
解决办法
4471
查看次数

获取矩阵中n个最大元素的索引

假设我有以下矩阵:

01 02 03 06
03 05 07 02
13 10 11 12
32 01 08 03
Run Code Online (Sandbox Code Playgroud)

我想要前5个元素的索引(在这种情况下,32,13,12,11,10).在MATLAB中最干净的方法是什么?

matlab matrix

50
推荐指数
4
解决办法
8万
查看次数

摆脱matlab图的pdf输出周围的空白区域

我想在LaTeX文档中使用我的matlab图的PDF版本.我使用带有PDF选项的"saveas"命令保存数字,但是我在pdf文件中的图表周围留下了巨大的空白区域.这是正常的吗?我怎么能摆脱它?当然,因为我有很多情节,所以自动进行.

pdf matlab

50
推荐指数
6
解决办法
7万
查看次数

使用分布式粒子拟合图像中自由区域中的最大圆

我正在处理图像,以检测并适合包含分布式粒子的图像的任何自由区域中的最大圆圈:1

(能够检测粒子的位置).

一个方向是定义一个圆圈触摸任何三点组合,检查圆圈是否为空,然后在所有空圆圈中找到最大的圆圈.然而,它导致大量组合,即C(n,3),n图像中的粒子总数在哪里.

如果有人能提供我可以探索的任何提示或替代方法,我将不胜感激.

math matlab geometry image-processing particles

50
推荐指数
4
解决办法
3159
查看次数

禁止Matlab窗口焦点窃取

有没有办法告诉Matlab 不要在诸如figure和之类的图形命令上窃取窗口焦点(来自外部编辑器),例如Emacs plot.这会大大提高我的工作效率,因为我经常希望在数据(重新)处理过程中继续进行代码开发.

matlab plot focus window-management

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