Tag: matlab

如何在MATLAB中将不同长度的细胞堆积成matrix?

所以,我有一个不同长度的1xN向量的单元arrays。 我想把它们追加到一个matrix,所以我可以用imagesc显示它们。 显然matrix必须是最大向量的宽度。 我目前的代码如下: tcell = {[1,2,3], [1,2,3,4,5], [1,2,3,4,5,6], [1], []}; lens = cellfun('length', tcell); rmat = NaN(length(tcell), max(lens)); for i = 1:length(tcell) rmat(i, 1:lens(i)) = tcell{i}; end 有没有人知道这种types的问题的vector化解决scheme? 由于MATLAB的JIT,我并不担心这个循环的速度。 我只是想扩大我的知识面,这是我在编程中经常碰到的一个例子。

在MATLAB中绘制椭圆和椭球

如何使用MATLAB绘制椭圆和椭球? (x^2/a^2)+(y^2/b^2)=1 n=40; a=0; b=2*pi; c=0; d=2*pi; for i=1:n u=a+(ba)*(i-1)/(n-1); for j=1:m v=a+(dc)*(j-1)/(m-1); x(i,j)=sin(u)*cos(v); y(i,j)=sin(u)*sin(v); z(i,j)=cos(u); end end mesh(x,y,z); 但我想要的形状?

如何在MATLAB中连接一个数字到一个variables名?

我有一个variablesa = 1 。 我想要生成一个variables名称的forms: variableNumber 所以在这个例子中,我想要的 a1 a2 a3 作为variables。 我怎样才能做到这一点?

用另一个matrix排列matrix

假设我有一个matrixA ,我sorting这个matrix的行。 如何在matrixB (当然是相同的大小)上复制相同的顺序? 例如 A = rand(3,4); [val ind] = sort(A,2); B = rand(3,4); %// Reorder the elements of B according to the reordering of A 这是我想到的最好的 m = size(A,1); B = B(bsxfun(@plus,(ind-1)*m,(1:m)')); 出于好奇,任何替代品? 更新: 乔纳斯在2008a(XP)上的优秀解决scheme : n = n 0.048524 1.4632 1.4791 1.195 1.0662 1.108 1.0082 0.96335 0.93155 0.90532 0.88976 n = 2m […]

使用{}和()(花括号和圆括号)访问单元格元素之间的区别

使用圆括号()和大括号{}访问单元格数组中的元素有什么区别? 例如:我尝试使用cell{4} = []和cell(4) = [] 。 在第一种情况下,它将第四个元素设置为[] ,但在第二种情况下,它删除了单元格元素,即将单元格元素数减1。

在内存中渲染MATLAB图

有没有其他方法可以使用getframe和saveas将graphics的内容保存到光栅图像中作进一步处理? 方法1: getframe h = figure('visible', 'off'); a = axes('parent', h); % render using `scatter3()` or other plot function. content = frame2im(getframe(h)); 这具有严重的缺点,即在调用getframe()时执行屏幕截图,并且在循环中执行这样的渲染(即,在每次迭代时将content保存为video帧)是有问题的。 方法2: saveas h = figure('visible', 'off'); a = axes('parent', h); % render using `scatter3()` or other plot function. saveas(h, '/path/to/file.png'); content = imread(/path/to/file.png'); 这种方法存在严重的写入磁盘的缺点,这在multithreading应用程序中是有问题的,而且比直接渲染到内存要慢。 因为在调用PNG编码器之前saveas()显然会呈现给内存,所以我想要的是可能的,但是在MATLAB文档中我找不到任何只执行渲染部分的函数。 问题 : 您是否知道将任意axes内容渲染为光栅图像的替代方法?

我应该如何更新Matlab中的图的数据?

假设我想更新一个新的数据的情节。 我应该select什么方法? 将XDataSource属性设置为某个名称,更新该variables并调用refreshdata 擦除原始plot ,然后再次调用plot命令。 使用Set('Xdata',…')

MATLAB的垃圾收集器?

你的心智模式是什么? 它是如何实现的? 它有哪些优点和缺点? MATLAB GC与Python GC ? 我有时会看到奇怪的性能瓶颈时使用MATLAB嵌套function,否则无害的代码,我相信这是因为GC。 垃圾收集器是虚拟机的一个重要组成部分,Mathworks并不公开。 我的问题是关于MATLAB自己的堆和GC! 不是关于处理Java / COM对象/防止“内存不足”错误/分配堆栈variables。 编辑:第一个回答实际上是元回答“我为什么要在意?”。 我很在乎,因为GC在实现链表或MVC模式时显现出来。

如何用颜色和值显示matrix?

我想使用MATLAB从双精度matrix创build像这样的图像。 示例图像: http://twitpic.com/2xs943

MATLAB中的哈希表

MATLAB是否支持散列表? 一些背景 我正在研究Matlab中的一个问题,需要图像的尺度空间表示。 为了做到这一点,我创build了一个二维高斯滤波器,在一定范围内为方差sigma*s^k ,然后我依次使用每一个滤波器来过滤图像。 现在,我想要从k到过滤图像的某种映射。 如果k总是一个整数,我只需创build一个3D数组,以便: arr[k] = <image filtered with k-th guassian> 但是, k不一定是整数,所以我不能这样做。 我想要做的是保持一系列k s,使得: arr[find(array_of_ks_ = k)] = <image filtered with k-th guassian> 一开始想起来似乎相当不错,除了我会用大约20或30的k值来进行这种查找,可能会有几千次,我担心这会损害性能。 我想知道是否我不能更好地使用某种哈希表来做这件事,这样我的查找时间就是O(1)而不是O(n)。 现在,我知道我不应该过早优化,我可能根本没有这个问题,但请记住,这只是背景,可能会有这样的情况,这是最好的解决scheme,无论它是我的问题的最佳解决scheme。