小编Spa*_*cey的帖子

不同颜色的MATLAB标题的不同部分

我有,我认为可能是一个"简单"的问题.我知道如何更改MATLAB标题的颜色.我不知道的是,如何在标题的两个不同部分使用两种不同的颜色.

例如,假设一个人物的标题是"Hello World".然后,我希望"Hello"为黑色,而"World"为蓝色.

这该怎么做?谢谢.

matlab colors title figure

7
推荐指数
2
解决办法
6213
查看次数

关闭MATLAB中的所有数字,除了特定的数字.

我试图确定是否有一个很好的方法,关闭MATLAB中的所有数字,除了我之前确定的一个(不)被关闭.有这样的方法吗?

我发现每次我的MATLAB脚本运行时,我都会浪费很多时间追逐特定的东西.谢谢.

matlab figure figures

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

如何在 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)

基本上就是这样。我该如何像上面那样可视化这些数据,或者类似的东西?谢谢。

3d matlab plot visualization matrix

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

MATLAB的'fminsearch'与Octave的'fmincg'不同

我试图在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)

matlab mathematical-optimization octave

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

是否有比这更好的矢量化技术?

我试图看看是否有其他方法可以更有效地编码此代码示例.这里,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可能会浪费太多,让一切都变慢.

思考?

matlab vector matrix vectorization

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

在SOM中标准化数据和/或权重向量是否正确?

所以我被一些(应该)简单的事情所困扰:

我为一个简单的"播放"二维数据集编写了一个SOM.这是数据:

在此输入图像描述

你可以自己制作3个集群.

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

在此输入图像描述

(这是因为所有数据都已投射到单位圆上).

所以,我的问题如下:

1)这是正确的吗?将数据投射到单位圆上似乎很糟糕,因为你不能再制作3个星团......这对SOM来说是生活中的事实吗?(即,他们只在单位圆上工作).

2)第二个相关问题是,不仅数据被标准化为具有长度1,而且每次迭代之后每个输出单元的权重向量也是如此.我明白他们这样做是为了让重量矢量不会'爆炸',但我觉得这是错误的,因为重量矢量的整个点是保留距离信息.如果将它们标准化,则会失去正确"聚类"的能力.例如,SOM如何区分左下方的集群和右上方的集群,因为它们以相同的方式向下投射到单位圆?

我很困惑.是否应将数据标准化为SOM中的单位长度?重量矢量是否也应该标准化?

谢谢!

编辑

这是数据,保存为MATLAB的.mat文件.它是一个简单的二维数据集.

machine-learning normalization neural-network som self-organizing-maps

4
推荐指数
2
解决办法
7483
查看次数

MATLAB中的循环缓冲区,**无**复制旧数据

关于如何在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

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

在C++中获取double的精确位表示

让我们说我们有一个双,比如,x = 4.3241;

很简单,我想知道,在C++中,如何只能为数字表示中的每个位检索一个int ?

我已经看到了其他问题,并在bitset上阅读了页面,但我恐怕还是不明白如何检索这些位.

所以,例如,我想输入是x = 4.53,如果位表示是10010101,那么我想要8个整数,每个整数代表每个10.

c++ hash types hashtable bit

4
推荐指数
2
解决办法
1929
查看次数

从MATLAB矩阵中提取数据而不进行for循环

在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循环的情况下提取这些数据.谢谢.

matlab matrix vectorization

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

在MATLAB中将两个y轴放在imagesc图像上

我认为这是一个简单的问题:我有一个我使用的图像矩阵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在图像的右侧显示?谢谢.

matlab plot image axes

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