小编Wol*_*fie的帖子

获取MySQL中空格之前的所有字符

我想在一个空格之前得到一个字段中的所有字符

例如,如果field1"chara ters"

我想要它回来 "chara"

这个选择语句会是什么样的?

mysql sql

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

matlab中的.asv文件

当我将.m文件保存在文件夹中时,MATLAB会.asv在同一文件夹中自动保存文件.

我打开这个文件,发现它从头开始包含我的代码,忽略了我删除的内容.

  • 这个文件有什么用?
  • 如果删除该文件会有什么风险?

matlab file-extension recovery

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

当我添加新输入时,如何在Matlab图中逐渐淡出先前的输入

假设我有这个非常简单的循环

for i=1:10
    [xO, yO, xA, yA, xB, yB, xC, yC] = DoSomething(i);
    line([xO,xA,xB,xC],[yO,yA,yB,yC]);
    pause(0.1);
end
Run Code Online (Sandbox Code Playgroud)

我正在绘制的坐标对应于多体系统的关节,我正在模拟它们随时间的位置(请参见此处的样本示例):

周期性情节

由于一些链接以周期性方式移动,因此在视觉上跟踪移动会变得混乱.出于这个原因,现在出现了一个问题:如何绘制线条,当绘制新线条时,前面的线条会逐渐消失?换句话说,我有一个从最近绘制的数据(最不透明)到最旧数据的渐变(越来越透明,直到它完全淡出).

这种方式当一条新线在与旧数据相同的位置绘制时,我会注意到它是一个新线.

matlab plot transparency line matlab-figure

16
推荐指数
3
解决办法
695
查看次数

使用Plotly渲染MATLAB补丁面fig2plotly()

问题:尝试导出patch在MATLAB中使用命令渲染的多边形时fig2plotly,最终输出缺少指定的面颜色.

也许演示会有所帮助.采用以下顶点和面来定义一个立方体(从MATLAB文档中取出):

vert = [0 0 0;1 0 0;1 1 0;0 1 0;0 0 1;1 0 1;1 1 1;0 1 1];
fac = [1 2 6 5;2 3 7 6;3 4 8 7;4 1 5 8;1 2 3 4;5 6 7 8];
Run Code Online (Sandbox Code Playgroud)

并使用patch命令渲染它,向面添加一些颜色信息:

patch('Vertices',vert,'Faces', fac, 'FaceVertexCData',hsv(8),'FaceColor','interp')
Run Code Online (Sandbox Code Playgroud)

并在3D中查看:

view(3)
axis vis3d
Run Code Online (Sandbox Code Playgroud)

这给出了一个很好的立方体,表面上有插值颜色值.

好立方体

现在,如果我们尝试使用以下fig2plotly命令将其导出到Plotly :

fig2plotly(gcf)
Run Code Online (Sandbox Code Playgroud)

它返回一个空的立方体(plotly链接):

空的立方体

换句话说,已捕获线信息,但不捕获面.即使我们试图保留MATLAB样式,我们仍然会丢失面部信息:

fig2plotly(gcf, 'strip', false)
Run Code Online (Sandbox Code Playgroud)

有什么建议?

matlab surface plotly

13
推荐指数
1
解决办法
435
查看次数

为什么Matlab Profiler说'for'循环的'end'语句存在瓶颈?

所以,我最近开始定期使用Matlab的内置分析器,我注意到虽然它通常很好地显示哪些线占用了最多的时间,但有时它会告诉我大量的时间正在循环end语句中使用for.

现在,看到这样一条线只是用来表示循环的结束,我无法想象它如何使用除了微不足道的处理之外的任何东西.

我已经在matlab中心看到了这个问题的特定版本,但似乎没有达成共识.

编辑:这是这个问题的最小例子:

for i =1:1000
    x = 1;
    x = [x 1];
    % clear x;
end
Run Code Online (Sandbox Code Playgroud)

即使您取消注释clear,该end行仍然需要大量计算(大约20%),并且clear实际上增加了结束行执行的绝对计算量.

performance profiler matlab profiling for-loop

11
推荐指数
1
解决办法
1906
查看次数

在Javascript中评估Latex数学

我正在研究一个基于html的计算器,我想渲染一个表达式,然后对它进行评估,所有这一切都必须在Javascript中完成.我更喜欢用LaTeX编写表达式,并且可以交互式编辑渲染表达式,但其他语言可以工作.

我之前尝试过的是使用MathQuill以交互方式呈现表达式,然后使用MathJS对其进行评估.然而,这在某种程度上起作用,因为两个包的设计目标不同(MathQuill呈现LaTeX,而MathJS具有自定义数学语法),它不能很好地工作(例如,如果用户键入\frac{5}{17*x}并假定它是正确的语法,然后评估它并从MathJS获取错误).

目前,我看到三种方法:

  • 继续我所拥有的(或者切换到MathJax-哪个更好?).
  • 找到一个同时进行渲染和评估的工具(无论是乳胶还是其他语言)
  • 找到两个用于渲染和评估的工具,使用close(如果不相同)语法
  • 按照此处的建议编写我自己的渲染和评估工具.我宁愿不这样做,因为它似乎有点乏味,我不想重新发明轮子.

做这个的麻烦方法是什么?

更新1:在查看altJS提供的替代语言列表后,我认为我可以使用Python,Ruby或Basic作为用户输入的语言.如果我这样做,它将为渲染它开辟如此多的可能性(从技术上讲,它不是"渲染",而只是考虑那里有多少语法荧光笔).但是,我不希望用户访问这些语言的更高级元素,因为它会给我的用户增加混乱,也可能不安全(如使用eval).我只希望用户能够使用数学运算,变量(只有我指定的那些,也可以是用户创建的)和函数(只有我指定的那些,他们可以,也是用户定义的).有没有办法限制可以使用的语言子集?

更新2:我看了看周围的一些altJS页的详细,并发现几乎所有的语言被设计成编译语言XYZ为JavaScript,然后在网页上运行JavaScript的,而不是运行语言XYZ 在页面上.我没有看过每一个,但大多数看起来都像这样.其他人,比如Brython,似乎被设计为在浏览器中运行语言XYZ,但作为JavaScript的替代/补充,而不是作为用户的输入语言.是否有一些解决方法,所以我可以使用这些方法作为输入?

更新3:感谢@SpaceDog获取该信息,并指出我没有具体说明用户应该能够实现的目标.所以,这是我想要实现的功能:

  1. 基本操作(加法,减法,乘法,除法/分数,取幂,根,模数)
  2. 功能(三角函数,日志等)
  3. 常数(e,pi等)
  4. 变量(赋值,重新分配和使用它们)
  5. 用户定义的功能

除最后一项外,LaTeXCalc似乎满足所有这些要求.此外,它似乎不是在Javascript中.

这让我想到了另一个我想过的想法:使用类似MathJax的东西进行演示,然后使用Wolfram Alpha API来实际处理计算.其好处是它可以为输入和输出提供更多高级选项.但是,应用程序将变得无用(为什么不使用wolframalpha.com,如果计算器实际上只是一个克隆?),它需要花钱,而且应用程序无法脱机工作(它是一个用HTML编写的桌面应用程序/ CSS/JS).对此的想法?

javascript interpreter latex renderer

11
推荐指数
1
解决办法
2984
查看次数

了解回滚tfs中的整个变更集?

我是TFS的新手.假设我有2个连续版本的变更集:600,601.如果我右键单击601并选择Rollback Entire changeset,那是否意味着更改集601应该与600完全相同?

我问这个是因为在这样做之后,我尝试比较了2个变更集,看到它们仍然有很大不同.关于Rollback Entire变更集做了什么让我很困惑?

version-control tfs changeset

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

Matlab 向量化 - 单元格的非零矩阵行索引

我正在使用 Matlab。

我有一个二元方阵。对于每一行,有一个或多个 1 的条目。我想遍历此矩阵的每一行并返回这些 1 的索引并将它们存储在单元格的条目中。

我想知道是否有一种方法可以在不循环此矩阵的所有行的情况下执行此操作,因为在 Matlab 中 for 循环非常慢。

例如,我的矩阵

M = 0 1 0
    1 0 1
    1 1 1 
Run Code Online (Sandbox Code Playgroud)

然后最终,我想要类似的东西

A = [2]
    [1,3]
    [1,2,3]
Run Code Online (Sandbox Code Playgroud)

A细胞也是如此。

有没有办法在不使用 for 循环的情况下实现这个目标,目的是更快地计算结果?

matlab vectorization

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

MATLAB的计时可靠吗?如果是的话,我们可以用 Julia、Fortran 等重现该性能吗?

最初这是mathematica.SE 中出现的一个问题,但由于讨论涉及多种编程语言,我认为最好稍微改一下措辞并将其发布在这里。

简而言之,michalkvasnicka在以下 MATLAB 示例中发现

s = 15000;
tic
% for-loop version
H = zeros(s,s);
for c = 1:s
    for r = 1:s
        H(r,c) = 1/(r+c-1);
    end
end
toc
%Elapsed time is 1.359625 seconds.... For-loop 

tic;
% vectorized version
c = 1:s;
r = c';
HH=1./(r+c-1);
toc
%Elapsed time is 0.047916 seconds.... Vectorized

isequal(H,HH)
Run Code Online (Sandbox Code Playgroud)

矢量化代码段比纯 for 循环代码段快 25 倍以上。虽然我无法访问 MATLAB,因此无法亲自测试示例,但时间1.359625似乎表明它是在普通 PC 上进行测试的,就像我的一样。

但我无法用 Fortran 或 Julia 等其他语言重现时间!(我们知道,他们俩都以数值计算的性能而闻名。好吧,我承认我绝不是 fortran 或 julia 的专家。)

以下是我用于测试的样本。我使用的是配备 i7-8565U CPU、Win 10 …

math performance matlab vectorization julia

10
推荐指数
2
解决办法
338
查看次数

当不使用"end"时,一个.m文件中的多个函数是嵌套的还是本地的

在MATLAB中,您可以在一个.m文件中拥有多个功能.当然有main函数,然后是嵌套函数或本地函数.

每种功能类型的示例:

% myfunc.m with local function ------------------------------------------
function myfunc()
    disp(mylocalfunc());
end
function output = mylocalfunc()
    % local function, no visibility of variables local to myfunc()
    output = 'hello world';
end
% -----------------------------------------------------------------------

% myfunc.m with nested function -----------------------------------------
function myfunc()
    disp(mynestedfunc());
    function output = mynestedfunc()
        % nested function, has visibility of variables local to myfunc()
        output = 'hello world';
    end
end
% ----------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

使用函数end语句时,差异很明显.但是,我不认为你没有清楚地记录你使用的是什么,因为这是有效的语法:

% myfunc.m with some other function 
function myfunc()
    disp(myotherfunc()); …
Run Code Online (Sandbox Code Playgroud)

matlab function nested-function

8
推荐指数
1
解决办法
424
查看次数