我有,我认为可能是一个"简单"的问题.我知道如何更改MATLAB标题的颜色.我不知道的是,如何在标题的两个不同部分使用两种不同的颜色.
例如,假设一个人物的标题是"Hello World".然后,我希望"Hello"为黑色,而"World"为蓝色.
这该怎么做?谢谢.
我试图确定是否有一个很好的方法,关闭MATLAB中的所有数字,除了我之前确定的一个(不)被关闭.有这样的方法吗?
我发现每次我的MATLAB脚本运行时,我都会浪费很多时间追逐特定的东西.谢谢.
我的问题非常简单:我有一堆矩阵,所有矩阵都相互堆叠起来,这样我就有了大量的数据。我想可视化这些数据,如下图所示:

在我看来,需要一定程度的透明度,这可能与每个体素的值有关。也就是说,值越高,体素对其后面的事物越不“透明”。我不知道如何开始。
这是一些使我的数据量变得很大的简单代码,所以我现在想要的就是尝试将其可视化。
clear all
%Make the random volume
mat = rand(50,50,100);
%Place high values in particular parts of the volume
sigCoors.rows = [23:33];
sigCoors.columns = [40:45];
sigCoors.time = [55:85];
mat(sigCoors.rows, sigCoors.columns, sigCoors.time) = 10.*rand(length(sigCoors.rows), length(sigCoors.columns), length(sigCoors.time));
%Visualize the volume:
% ?
Run Code Online (Sandbox Code Playgroud)
基本上就是这样。我该如何像上面那样可视化这些数据,或者类似的东西?谢谢。
我试图在MATLAB和Octave中的两个函数之间找到一个简单优化问题的一致答案.这是我的代码:
options = optimset('MaxIter', 500 , 'Display', 'iter', 'MaxFunEvals', 1000);
objFunc = @(t) lrCostFunction(t,X,y);
[result1] = fminsearch(objFunc, theta, options);
[result2]= fmincg (objFunc, theta, options);
Run Code Online (Sandbox Code Playgroud)
(请记住,X,y和theta是先前定义的并且是正确的).问题如下:当我使用fmincg(推荐fminsearch)在MATLAB中运行上面的代码时,我得到了正确的答案.
但是,如果我注释掉fmincg并让我们运行fminsearch,我就无法进行任何转换.实际上输出看起来像这样:
491 893 0.692991 reflect
492 894 0.692991 reflect
493 895 0.692991 reflect
494 896 0.692991 reflect
495 897 0.692991 reflect
496 898 0.692991 reflect
497 899 0.692991 reflect
498 900 0.692991 reflect
499 901 0.692991 reflect
500 902 0.692991 reflect
Exiting: Maximum number of iterations has been exceeded
- increase MaxIter option.
Current function …Run Code Online (Sandbox Code Playgroud) 我试图看看是否有其他方法可以更有效地编码此代码示例.这里,y是1xM矩阵(例如,1x1000),z是NxM矩阵(例如,5x1000).
mean(ones(N,1)*y.^3 .* z,2)
Run Code Online (Sandbox Code Playgroud)
这段代码工作正常,但我担心如果N增加很多,ones(N,1)*y.^3可能会浪费太多,让一切都变慢.
思考?
所以我被一些(应该)简单的事情所困扰:
我为一个简单的"播放"二维数据集编写了一个SOM.这是数据:

你可以自己制作3个集群.
现在,有两件事令我困惑.第一个是我拥有的教程,在SOM开始工作之前规范化数据.这意味着,它将每个数据向量标准化为长度为1.(欧几里德范数).如果我这样做,那么数据看起来像这样:

(这是因为所有数据都已投射到单位圆上).
所以,我的问题如下:
1)这是正确的吗?将数据投射到单位圆上似乎很糟糕,因为你不能再制作3个星团......这对SOM来说是生活中的事实吗?(即,他们只在单位圆上工作).
2)第二个相关问题是,不仅数据被标准化为具有长度1,而且每次迭代之后每个输出单元的权重向量也是如此.我明白他们这样做是为了让重量矢量不会'爆炸',但我觉得这是错误的,因为重量矢量的整个点是保留距离信息.如果将它们标准化,则会失去正确"聚类"的能力.例如,SOM如何区分左下方的集群和右上方的集群,因为它们以相同的方式向下投射到单位圆?
我很困惑.是否应将数据标准化为SOM中的单位长度?重量矢量是否也应该标准化?
谢谢!
编辑
这是数据,保存为MATLAB的.mat文件.它是一个简单的二维数据集.
machine-learning normalization neural-network som self-organizing-maps
关于如何在MATLAB中创建循环缓冲区,这里有一些好的帖子(比如这篇).然而,通过查看它们,我不相信它们适合我的应用程序,因为我所寻求的是MATLAB中的循环缓冲解决方案,它不涉及任何旧数据的复制.
举一个简单的例子,我们说我一次处理50个样本,每次迭代读取10个样本.我将首先完成5次迭代,填充我的缓冲区,最后处理我的50个样本.所以我的缓冲区将是
[B1 B2 B3 B4 B5]
Run Code Online (Sandbox Code Playgroud)
,其中每个'B'是10个样本的块.
现在,我在接下来的10个样本中读到,称之为B6.我希望我的缓冲区现在看起来像:
[B2 B3 B4 B5 B6]
Run Code Online (Sandbox Code Playgroud)
问题就是这样 - 我不想每次都复制旧数据,B2,B3,B4,B5,因为它在时间上变得昂贵.(我有非常大的数据集).
我想知道是否有办法在不复制"旧"数据的情况下执行此操作.谢谢.
optimization matlab buffer circular-buffer processing-efficiency
在MATLAB中,假设我有一个10 x 100矩阵,称为M.我想做的是提取该矩阵的特定指标,并以矢量化方式立即基于行索引对它们进行操作.
例如,对于第一行,我想要计算sum(M(1, 1:1:100)).然后第二排,我想要sum(M(2, 1:2:100)).对于第三排,我想要sum(M(3, 1:3:100))等等.对于第十排,我当然有sum(M(10, 1:10:100)).
我在for循环中有这个,但我想看看是否有一种方法可以在没有for循环的情况下提取这些数据.谢谢.
我认为这是一个简单的问题:我有一个我使用的图像矩阵imagesc.我只是想在图像的右侧显示第二个y轴.我怎么做?例:
clear all;
aMatrix = rand(20,30);
yAxis1 = 32.*(1:size(aMatrix,1));
yAxis2 = 165.*(1:size(aMatrix,1));
xAxis = 1:size(aMatrix,2);
imagesc(yAxis1, xAxis1, aMatrix);
Run Code Online (Sandbox Code Playgroud)
以下将yAxis1在左侧显示图像.这很好,但我如何同时yAxis2在图像的右侧显示?谢谢.