小编Mat*_*ech的帖子

matlabs plotyy with axis for each plot only only one side

以下代码显示了我的问题.如果蜱不在两侧的相同位置(这是正常情况......),则情节完全失败

我需要一个带有两个y轴但只在一侧有刻度的图.我被建议使用addaxis,但我不知道这对我有什么帮助,因为我不想要分离轴.

clf;
clc;
xaxis = 0:0.1:25;
ydata1 = linspace(12.1712,12.7679, length(xaxis));
ydata2 = linspace(0.3597,-28.7745, length(xaxis));

[AX,H1,H2] = plotyy(xaxis, ydata1, xaxis, ydata2);

% axis limits - x axis (min to max)
xlimits(1) = min(xaxis); xlimits(2) = max(xaxis);
set(AX, 'XLim', xlimits);
set(AX(2),'XTick',[]);

% y1 axis limits 
ylimits(1) = min(ydata1); ylimits(2) = max(ydata1);
ylimits(2) = ylimits(2) + (ylimits(2)-ylimits(1))*0.05;
set(AX(1), 'YLim', ylimits);

% y2 axis limits 
ylimits(1) = min(ydata2); ylimits(2) = max(ydata2);
ylimits(2) = ylimits(2) + (ylimits(2)-ylimits(1))*0.05;
set(AX(2), 'YLim', ylimits);

% y1 ticks 
set(AX(1),'YTick',[12.0:0.1:12.8]); …
Run Code Online (Sandbox Code Playgroud)

matlab plot

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

颜色轮廓不同于pcolor

我正在使用pcolor和轮廓线.但是,无法从图中识别线的值,如下图所示.

[x y data] = peaks(1000);
data = data / max(max(data));

colorDepth = 1000;
colormap(jet(colorDepth));

hold on;
pcolor(x,y,data); shading flat

[C,hfigc] = contour(x, y, data,[0:0.1:1]);
set(hfigc, ...
    'LineWidth',1.0, ...
    'Color', [1 1 1]);
hold off;
hcb = colorbar('location','EastOutside');
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我宁愿希望pcolor为灰色值,轮廓线为颜色.然而,我也需要轮廓线的图例.

编辑:它通过组合两个色彩图以某种方式工作,但然后颜色条显示两者,这不是我想要的.我宁愿想要一个包含与绘图相同轮廓线的颜色条.

[x y data] = peaks(1000);
data = data - min(min(data));
data = data / max(max(data));

colorDepth = 1000;

hold on;
caxis([-1 1]);
colormap([gray(colorDepth); jet(colorDepth)]);
hplot = pcolor(x,y,data); shading flat        

[C,hfigc] = contour(x, y, data-1,[-1:0.1:0]);
set(hfigc, 'LineWidth',1.0);
% set(hfigc, 'Color', [1 …
Run Code Online (Sandbox Code Playgroud)

matlab contour

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

什么时候更喜欢for循环而不是std :: transform,反之亦然

我想了解何时使用std :: transform更实用,何时使用老式的for循环更好。

这是带for循环的代码,我想将两个向量组合成一个复杂的向量:

    vector<double> vAmplitude = this->amplitudeData(N);
    vector<double> vPhase = this->phaseData(N);
    vector<complex<double>,fftalloc<complex<double> > > vComplex(N);
    for (size_t i = 0; i < N; ++i)
    {
        vComplex[i] = std::polar(vAmplitude[i], vPhase[i]);
    }
Run Code Online (Sandbox Code Playgroud)

这是我的std :: transform代码

    vector<double> vAmplitude = this->amplitudeData(N);
    vector<double> vPhase = this->phaseData(N);
    vector<complex<double>,fftalloc<complex<double> > > vComplex;
    std::transform(
                begin(vPhase), end(vPhase), begin(vAmplitude),
                std::back_inserter(vComplex),
                [](double p, double a) { return std::polar(a, p); });
Run Code Online (Sandbox Code Playgroud)

请注意,vComplex的分配没有大小,因此我想知道何时分配。此外,我不明白为什么,在lambda表达式,p并且a必须扭转对他们的使用。

for-loop stl c++11

5
推荐指数
2
解决办法
1327
查看次数

从图中删除注释

我有一个gui,包括一个情节.在这个图中我添加了一个注释.当使用gui更改绘图数据时,旧的注释仍然存在,新的注释将在旧的上面绘制.

所以我需要删除他的旧注释.我尝试了以下代码,但这没有效果:

set(0,'showhiddenhandles','on')
% look for all axes in the figure of choice:
h_all_axes = findall(gcf,'type','axes');
% get the 'annotation layer' axes handle:
h_anno_axes = double(find(handle(h_all_axes),'-class','graph2d.annotationlayer'));
delete(h_anno_axes);
set(0,'showhiddenhandles','off');

annotationPos = [0.55 0.58 0.6 0.3];
htxtbox = annotation('textbox',annotationPos, ...
    'String'     ,strtextbox, ...
    'FontSize'   ,FontSize+1, ...
    'FitBoxToText', 'on', ...
    'EdgeColor', 'none', ...
    'FontName'   , 'Courier New');
Run Code Online (Sandbox Code Playgroud)

matlab annotations

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

在Windows上安装svn服务器

我想在Windows 7 64位机器上安装SVN服务器(仅适合我).

我使用Slik SVN并设置了一项服务:

sc create svnserver binpath= "C:\Program Files\SlikSvn\bin\svnserve.exe --service -r H:\svn\repository" displayname= "Subversion" depend= Tcpip start= auto
Run Code Online (Sandbox Code Playgroud)

这列在服务列表中,但无法启动:

C:\Windows\system32>sc create svnserver binpath= "C:\Program Files\SlikSvn\bin\s
vnserve.exe --service -r H:\svn\repository" displayname= "Subversion" depend= Tc
pip start= auto
[SC] CreateService ERFOLG

C:\Windows\system32>net start svnserver
Der Dienst reagiert auf die Kontrollfunktion nicht.
Run Code Online (Sandbox Code Playgroud)

知道为什么这不起作用吗?

svn windows

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

.format中的卷曲括号

我想打印以下内容

\printCodeFromFile[5]{7}{myfile.tex}
Run Code Online (Sandbox Code Playgroud)

我用以下代码构造

outputStr = "\\printCodeFromFile[{startline}]{{endline}}{{name}}".format(startline=lineStart, endline=lineEnd, name=filename)
Run Code Online (Sandbox Code Playgroud)

不幸的是,那就是

 \printCodeFromFile[5]{endline}{name}
Run Code Online (Sandbox Code Playgroud)

那么我如何逃脱或插入卷曲的支架,以便打印它们并插入变量?我在文档中找不到任何提示.

python string format

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

提取图像线(矩阵)

我在matlab中加载图像并将它们作为双矩阵使用.

现在我想从图像的一个点到另一个点的直线上提取数据值.然而,这一行不等于列或行(这很容易).

我怎么能用matlab做到这一点?

matlab plot matrix

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

QChart 对大数据集无响应

我的这段代码适用于高达 1000 的数据大小。现在我用 65536 个点对其进行了测试。

\n\n
series = new QLineSeries();\n\nQList<QPointF> points;\npoints.reserve(data.size());\n\nfor(std::vector<int>::size_type i = 0; i != data.size(); i++) {\n    QPointF point(i, data[i]*100/max);\n    points.append(point);\n}\nseries->clear();\nseries->append(points);\n
Run Code Online (Sandbox Code Playgroud)\n\n

并且应用程序在 1 个核心全功率运行时冻结。几分钟后我就停下来了。

\n\n

如何防止 Qt 变得无响应。这个数据大小并不特殊,我希望图表视图能够处理高达百万点的数据集。

\n\n

编辑:\n我测量了时间

\n\n
series->append(points);\n
Run Code Online (Sandbox Code Playgroud)\n\n

2000分需要1秒。这意味着大约一分钟内 > 50.000 是无法使用的。

\n\n

更糟糕的是,对数刻度图

\n\n
serieslog->append(points);\n
Run Code Online (Sandbox Code Playgroud)\n\n

2000分需要40秒。那是完全无法使用的。原因是调试消息,几乎每个点都会打印出来。

\n\n
\n

QtCharts::XLogYDomain::calculateGeometryPoints(const QVector&) const>; 零和负值的对数未定义。

\n
\n\n

我可以用以下方法加快线性图的速度

\n\n
 series->setUseOpenGL(true);\n
Run Code Online (Sandbox Code Playgroud)\n\n

然而,对于 65536,它仍然需要 14 秒,这意味着每个点 200 \xc2\xb5s。\n仍然太多。我想要一个最低 10 Hz 的实时视频和一个实时直方图。时间必须 << 1 秒。

\n\n

编辑:\n这是一个使用我的代码的工作示例

\n\n
#include <QDebug>\n#include <QTime>\n#include <cmath>\n#include <stdlib.h>\n\n#include <QtCharts/QChartView>\n#include <QtCharts/QLineSeries>\n#include …
Run Code Online (Sandbox Code Playgroud)

qt qchart

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

QtCharts axisX()已贬值

我的代码使用QtCharts。

即使在最新文档中,axisX() 我也有这样的方法

chart->axisX()->setRange(0, data.size());
chart->axisY()->setRange(0, max);
Run Code Online (Sandbox Code Playgroud)

但是使用Qt 5.12我会收到此消息

警告:不推荐使用QtCharts :: QAbstractAxis * QtCharts :: QChart :: axisY(QtCharts :: QAbstractSeries *)const

我应该如何用未折旧的代码替换代码?

qt

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

当 Numberformat 设置为“MM/YY”时,德国计算机上的结果为“MM.YY”

我想为 Excel 图表中的 x 轴创建数字格式。

如果我手动将其设置为“MM/JJ”,我会得到正确的日期打印为“04/23”。如果我使用 vba 设置数字格式

Dim cht As Chart
Set cht = ws.Shapes.AddChart2(240, xlXYScatterLinesNoMarkers).Chart
cht.Axes(xlCategory).TickLabels.NumberFormat = "MM/YY"
Run Code Online (Sandbox Code Playgroud)

结果是“MM.YY”

计算机的语言是德语。

excel vba number-formatting

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

标签 统计

matlab ×4

plot ×2

qt ×2

annotations ×1

c++11 ×1

contour ×1

excel ×1

for-loop ×1

format ×1

matrix ×1

number-formatting ×1

python ×1

qchart ×1

stl ×1

string ×1

svn ×1

vba ×1

windows ×1