MATLAB中少了什么# 2——未来十年版

165(30天)
里克
里克 2020年7月31日
回答: 2021年6月10日首度
倾向于生长大元线程。这个之前已经发生了好几次了(愿望列表的线程 # 1 # 2 # 3 # 4 # 5 ,“让你沮丧什么MATLAB ?” # 1 # 2 )。
难怪一个线程从2011年初也持续增长。之后不到十年(在写作时间)有119个答案,让页面加载缓慢和导航(特别是在移动)。所以在一个友好的推动;这是一个新线程从Matlab失踪的事情。
同样的问题:有事情你认为应该有可能在Matlab中,但不是吗?什么东西可能有类似Matlab软件包Matlab将会从中受益?(注意,您也可以提交一个增强请求通过支持,虽然我怀疑他们将在这个线程监控活动)万博1manbetx
你应该贴在哪里?
愿望列表线程( # 1 # 2 # 3 # 4 # 5 Matlab的答案):缺陷和功能的要求
挫折线程( # 1 # 2 ):身边Matlab本身的用法和功能
缺少功能线程( # 1 # 2 ):功能你Matlab会有呼呼的声音
@anyone发布一个新线程,当最后一个太大(约50的答案似乎是一个合理的限制每个线程),请更新这个列表中所有线程。(如果你没有编辑权限,只发布评论问某人做编辑)

答案(22)

dpb
dpb 2020年9月10日
编辑器不会限制substituion选择区域……最好的是它知道函数。在马克斯土里土气的!我现在必须修理很多东西不应该做……:(

Shae摩根
Shae摩根 2020年7月31日
facet_wrap或facet_grid(或一般ggplot2功能)版本的次要情节,或改变,一些简单的可定制性的次要情节的数据子集。
格拉姆是一个可用的工具箱,但它会很高兴把它建成的

拉斐尔s.t。维埃拉
拉斐尔s.t。维埃拉 2020年7月31日
编辑:拉斐尔s.t。维埃拉 2020年7月31日
我想有一个命令 TeX2sym sym2TeX 。有了它,我们可以把公式从乳胶和运行它们在MATLAB和相反。这是一个乏味的工作做,我可以打赌大部分MATLAB做还是做最终用户。
另一个有用的功能添加 任意精度的算法 …python和Java等语言(Bignum),允许无限精度至少在处理整数。认为它是缓慢的,但是我相信MATLAB团队可以做的更好的东西。MATLAB,老实说,我觉得缺少一个功能,没有……甚至一些软件竞争。
最后,我正在考虑购买文本分析工具箱,就好了,如果可以有一个 语法、拼写检查器。 即使它不是先进或不包含所有单词。随着生活的脚本,我们可以编写一个交互式文档,所以就好了如果MATLAB可以正确拼写(即使它需要一个工具箱)。
5个评论
拉斐尔s.t。维埃拉
拉斐尔s.t。维埃拉 2020年8月1日
谢谢你的兴趣,沃尔特和里克。我认为最好是教自己的代码在一个特定的方式,这将使MATLAB将信谊,比每次手工做的任务。
运算符优先级可以照顾一些这些问题。如果输入\罪x + y,然后从左到右的优先级可以决定输出sin (x) + y。并获得赎罪(x + y),我们将不得不代码乳胶\ {x + y}或罪\ sin (x + y)。
隐含在数学和乳胶乘法确实非常常见。另一方面,它也几乎无处不在,正如单一变量写字母(尤其是如果我们写隐含乘法)。
最后,一个命令就像tex2sym不需要考虑每一个数学包恕我直言,只是一些命令和宏。MATLAB甚至可以返回其最好的猜测,让我们完成剩下的任务。当然,理想的情况下,我们只会复制内容从$ $等环境和\ […\]并将它们粘贴到MATLAB tex2sym转换。

登录置评。


沃尔特·罗伯森
沃尔特·罗伯森 2020年9月13日
“软中断”——也就是说,可以处理一个中断try / catch。
例如我目前运行长计算,多次迭代,和每次迭代可以超过一个小时。我总是没有耐心等待通过尽可能多的迭代请求。我的目的,最后成功的迭代的输出将是“足够好”如果我问中断函数。
我可以control - c,但完全中断函数,失去所有的输出,和变量的函数。
如果我能以某种方式“软中断”并让它返回所有变量的当前值,那么这将是足够好我的当前任务。但泛化会抓住一个软中断的能力在一个try / catch代码可以不管最后summariziation需要为了创建可用的输出变量。此外,尽管我自己的程序可能会乐意返回“最后的好”的输出变量值,任何软终端我要求很可能会收到一些低级程序控制,不知道软中断,所以我希望中断(没有返回值)适用于这些层直到控制达到我的干净的破败的处理程序。
7评论
Sindar
Sindar 2020年10月3日
在类似的情况下我的解决方案是检查某个文件(“FAIL_MODE.txt”)是否存在于每个迭代结束时的目录。如果是这样,打破循环。然后,停止这个项目,所有我要做的就是创建文件(这是很琐碎的,除非Matlab已经冻结了整个电脑)

登录置评。


蒂姆
蒂姆 2020年11月5日
以下更改内部体积渲染器将使体积可视化Matlab更加有用:
  • 真正的RGB体积可视化(与标量数据+ colormap)
  • 独立、分离的规范的α值和强度值
  • 能够把体积图像与标准轴和轴对象像点,线,补丁等。

马里奥苹果
马里奥苹果 2020年11月13日
当输入代码时,如果用户想要引用一个变量或函数,可以点击选项卡并得到一个匹配的函数和变量的列表。会有用分裂这个功能修饰符如果用户想要引用一个两个?作为一个例子Shift + Tab为变量和函数和变量选项卡(不打破当前的功能)。

米哈伊尔•
米哈伊尔• 2020年8月2日
一些(大多数)动态编程语言允许有经验的开发人员有调查了解他们的代码是如何执行的运行时环境。
他们能够看到解析树和编译后的字节码。
他们能够看到哪些部分jit编译的代码,并如何编译。当事情不是编译时,他们能够明白为什么。
开发人员不必猜测是否一个特定的优化又回来了。他们知道如何处理每一个对象的代码(无论是牛,以引用的方式传递,通过价值)。
我想看看这些功能在MATLAB。
8的评论
里克
里克 2020年8月2日
这并不使可怕的函数,它只是意味着函数并不适合您的需要。我不抱怨我的假想电炉不能降温,即使与侦探可以加热和冷却的东西用一个电驱动装置。
虽然可以重用的内部 readfile 解决双utf - 8编码的文件,问题不在于功能,双重编码。修复双重编码是一个不同的任务从阅读文件正确。它不会是一个“修补我的功能”,这将是重用内部函数为一个不同的目标。“修补”这个词意味着我的功能坏了,但以纠正形式返回双重编码的文件是没有履行合同,提供的函数的名称。
还有更多的理由关闭源不仅仅是思考你的用户是愚蠢的(建议否则听起来很像假设恶意)。作为一个例子:如果你想提供一个函数执照费,是平原愚蠢你许可检查在一个m文件,因为它几乎是微不足道的规避。

登录置评。


赛斯Wagenman
赛斯Wagenman 2020年8月31日
能力将Python项目MATLAB数据类型(除了numpy数组)的MATLAB,而不是在Python使用admin-rights-required API: //www.tianjin-qmedu.com/help/matlab/matlab_external/install-the-matlab-engine-for-python.html?s_tid=srchtitle

dpb
dpb 2020年9月6日
编辑:dpb 2020年9月6日
一个ready-built 插入 方法表、数组等,所以不需要做所有的底层的手工索引…给定一组合适的大小和匹配的索引,如果有表(说)
tMyTable =插入(tMyTable,指标,tNewData);
理想情况下,一个选项关键字 “空”,T | F 将是可用的。
也许我缺少一些神奇的仙尘,但我无法找到一个方法,这一次没有身体上移动一段插入新行这意味着工作从后到前避免改变指数的插入点或链状的碎片从前面。
4评论
dpb
dpb 2020年9月6日
无疑是的,那是一种更好的方式建设,沃尔特,我真的没有想到实现太多除了“正前方”到“只是得到立即的er做!”任务。
休息一下,我想把它作为增强讨论一个想法……与侧灯也许有人确实有一个“诡计”没有想到的。

登录置评。


沃尔特·罗伯森
沃尔特·罗伯森 2020年9月9日
我知道我说过,但仍然失踪,仍然很重要:
我们需要一种方法来收集所有函数调用的输出到一个细胞 在中间的一个表达式
我知道这可能是棘手的内部实现。有内部规则,很难解决,这和多少输出请求的功能。例如,
[A, B] = cellfun (@C D“统一”,0)
不知为何将“两个输出”的知识传递给C——例如如果你使用@max然后将细胞数组的最大值和B细胞数组的索引。比这个情况可能会变得更复杂,弄清楚所有的情况下会使你的头部受伤。但是我们知道任何表达式C D (D (E)), (E)将评估要求一个输出,将传递给C…但多个输出的知识传递给C而不是D。
输出的数量使用固有的不清楚。如果例如你叫数值和问收集输出,你要求共同宣传,你的情况下,或完整的吹捧,你,你,你们,IE ?有一些情况下,额外的输出可以是昂贵的计算,所以即使一个操作,收集“最大”输出可能是有用的,它并不总是有利的,所以选择的能力数量将是有用的。
然后有问题,例如,协议(),在那里你可以拥有任意数量的输出只有一个输入:
[A, B, C, D] =交易(123)
会初始化一个,B, C, D - 123。所以如果你问收集“所有”的输出协议(123),这一数字并不明确。
工作这些事情不是微不足道的,但它是一个很缺少的语言。
可能会有一个机会等语法{}的名字——例如,
arrayfun (@ (X0){}数值(@f tspan, X0), X0)
想收集所有调用的输出。目前,{}无效之前,一个名字。
2的评论
沃尔特·罗伯森
沃尔特·罗伯森 2020年9月10日
布鲁诺,
假设您希望实现
[临时{1:3}]= ndgrid (1: .1:1);
C = cell2mat (cellfun (@ (M) M(:),温度,“统一”,0);
也就是说,你想要一个数组中的每个列的输出的ndgrid ()。你想做它作为一个表达式。
ndgrid()没有固定数量的输出,它不像罪()与一个固定的输出,或与两个固定输出马克斯。nargout (@ndgrid) 1——换句话说宣言
函数varargout = ndgrid(变长度输入宗量)
如果你想捕捉的所有输出max(),那么你可以查询ndgrid (@max) 2:
函数输出= gather_outputs (f,变长度输入宗量)
n = nargout (f);
{1:n}[输出]= f(变长度输入宗量{:});
结束
你可以
gather_outputs (@max,兰德(3、5))
这是对采集的两个输出马克斯到单个单元阵列。
但如果我们试着
gather_outputs (@deal [])
然后nargout (@deal)是1,如果我们说“好的,取绝对值,1”然后我们将会做的事情
{1:1}[输出]=交易([])
这将给你{[]}作为输出。
这表明你不能只看nargout()函数的调用,比如@max或@deal。
我们可以看看nargout整体表达确定的数量的输出用于交易吗?不,
C = cell2mat (cellfun (@ (M) M (:), gather_outputs (@ndgrid, 1: .1:1),“统一”,0));
充其量会告诉你,nargout是1 (C变量)。你需要别的东西来告诉你想要输出的数量——类似
函数输出= gather_n_outputs (f, n,变长度输入宗量)
{1:n}[输出]= f(变长度输入宗量{:});
结束
然后你可以
C = cell2mat (cellfun (@ (M) M (:), gather_n_outputs (@ndgrid 3 1: .1:1),“统一”,0));
请求建立这种设施在MATLAB不用写真实函数gather_n_outputs和必须通过函数处理。一些语法 就像
C = cell2mat (cellfun (@ (M) M (:), {3} ndgrid (1: .1:1),“统一”,0));
hypothethical新语法的{3}表明你是要求3输出,你希望他们聚集在一个单元阵列。常见的替代语法将{}请求所有的输出,
C = cellfun (@ V (V)。^ 2,{}马克斯(兰德(3、5)),“统一”,0)
这将假设收集(所有)max()调用的输出单元阵列,将被用于进一步的处理。
如果你只是用
C = cellfun (@ V (V)。^ 2,马克斯(兰德(3、5)),“统一”,0)
单一的知识输出将通过cellfun,这将告诉max()只发出一个输出,所以你不会得到第二个输出处理。和第一个输出数字不是细胞,所以你需要arrayfun代替cellfun…)

登录置评。


沃尔特·罗伯森
沃尔特·罗伯森 2020年10月12日
“选择”条款为readtable()和亲属。
例如一个用户只是想读一个特定变量的行有一个特定的值
它在某种程度上可以实现的rowfun()类型函数,通过连续变量,可能做出武断的决定基于行内容。
然而早期阶段可能对变量名(或数字)和一个向量数组或单元的值,选择的代码做了一个ismember ()。这种设备可以进一步提高如果有一个“分类”选项(所以代码可以找出当放弃寻找——任何一个值应该不再是寻找如果遇到更大的值)。甚至“分组”,并不意味着排序这样但意味着,当你发现的所有实例的值将在相邻行存在的价值,所以一旦你发现你可以改变知道放弃寻找价值。

Sindar
Sindar 2020年11月5日
好的,这是非常小,但是:
为常见的函数返回值作为第一个输出和指数作为第二个,就好了,如果有一个直接的方式的指标,所以我可以做这样的事情:
x = [1 2 5 4 5];
y = 1:5;
y_xsorted = y (sortInd (x));
%或
y_xunique = y(独特(x,“是”));
而不是需要创建临时变量:
x = [1 2 5 4 3];
y = 1:5;
[~,idx] = (x)进行排序;
y_xsorted = y (idx);
[~,idx] =独特的(x);
y_xunique = y (idx);
我知道我可以包装,但这似乎是一个情况装入的函数可能明显优化。(比重建整个输出系统)更简单

布鲁诺陈德良
布鲁诺陈德良 2020年11月6日
(数值)数据结构的实现家庭与O (1) inserttion,删除,包括chain-list,二叉树,Fibonachi树,红黑树等,等……性能必须专注点。不在乎他们是否封装在OP,只是不降低性能。

布鲁诺陈德良
布鲁诺陈德良 2020年11月6日
实现相当于C内联函数(或宏观),调用这个函数在小数据不会处罚与伞速度。

布鲁诺陈德良
布鲁诺陈德良 2020年11月17日
编辑:布鲁诺陈德良 2020年11月17日
没什么大不了的,但我希望签署(X)函数能返回1 X = 0而不是0。可以实现一个选项不打破兼容性。
我只是很少使用标志,因为这个异常的选择。
5个评论
布鲁诺陈德良
布鲁诺陈德良 2020年11月18日
为什么我喜欢签署(0)= 1 ?
我y = (x)上签字应该满足这两个重要的属性
规范(y) = 1
x = y * abs (x)
这个独特的决定任何x y ~ = 0(真实、复杂的甚至是四元数)。x = 0, y = exp(1 *α)和α真正满足属性,所以就选择它作为任意公约y = 1。
然而MATLAB信号()函数不满足第一个属性x = 0。
亚当斯的把戏标志(x +最小正浮点数)很有趣,但它只是转变x =最小正浮点数的问题。

登录置评。


崔
2021年2月7日
编辑:每•艾萨克森 2021年5月31日20:47
深入学习工具箱:
如何想象dlarray /重量的变化与直方图分布深度学习吗?
直方图显示多张量的趋势(重量、偏见、梯度等)变化在训练过程中以直方图的形式。开发人员可以调整模型结构准确,深入理解每一层的影响。
5个评论
崔
2021年2月9日
@Adam Danz 谢谢你的建议,我期待着官方的未来版本将会大大提高!

登录置评。


崔
2021年2月7日
编辑: 2021年2月8日
MATLAB
我非常希望官方版本将加强 readstruct 函数在未来!缺乏完整统一的支持万博1manbetx 更多的格式要求

崔
2021年2月7日
编辑: 2021年4月1日
深入学习工具箱:
等等....
上面是有影响力的深度学习在各方面的应用,但在matlab很难复制。尽管Matlab2019b版本支持自动分化机制,仍然很难在万博1manbetxmatlab实现算法。分化机制的效率不高,和许多运营商不支持它。万博1manbetx我试图实现更有名 yolov3 / v4算法 最新MATLAB2020a版本,但它仍不满意
总之,我个人建议就像上面我个人的答案,我希望未来版本可以提高很多!
以上都为深度学习在各个方面有影响力的应用,但是在matlab中复现困难,虽然Matlab2019b版本支持自动微分机制,但仍然不易在matlab实现算法,微分机制效率不高,很多运营商也不支持……
总之,我的个人建议就像上面的个人回答建议一样,我希望将来的版本可以有所改善!

崔
2021年2月19日
深入学习工具箱:
groupedConvolution2dLayer自 R2019a支万博1manbetx持, 但groupedConvolution3dLayer不支持? ? ?万博1manbetx(直到R2020b)
3评论
亚当Danz
亚当Danz 2021年2月23日
@cui 你能详细说明你最后的评论?你是怎么接触MathWorks为什么你有这样的印象?

登录置评。


卡米洛·安德烈斯Manrique Escobar
一件事是:定义类笔记本(住在MATLAB脚本)。这是一个正常的多年来在Python中,例如。

罗伯特Guldi
罗伯特Guldi 2021年5月29日18:58
据我所知,似乎没有太多的方式为excel的工作(我的文档。创建和操纵图表)。我想看到一些物质添加到文档搜索如果可能的话。
19日的评论
dpb
dpb 2021年6月2日15:50
好的,谢谢你的提示,我认为
边界=得到(细胞,“边界”);
边疆=得到(边界,“项目”、边界);
集(边疆,“线型”、风格、“重量”、重量);
会返回想要的边界项对象,但显然不是…我还是不完全明白,但以下工作....
边疆= borders.Item (whichBorder);
集(边疆,“线型”、风格、“重量”、重量);
尽管一个显然不能写
集(borders.Item (whichBorder),“线型”、风格、“重量”、重量);
在典型的MATLAB语法时尚。
函数SetBorder (sheetReference范围,whichBorder、重量、风格)
如果= = XlLineStyle风格。xlDouble,weight=XlBorderWeight.xlThick;结束%组合作品
如果= cellstr ischar(范围),范围(范围);结束
如果isenum (whichBorder) whichBorder = int32 (whichBorder);结束
如果isenum(重量)、体重= int32(重量);结束
如果isenum(风格),风格= int32(风格);结束
i = 1:元素个数(范围)
试一试
{我}= sheetReference.Range范围(范围);
边界=得到(范围,“边界”);
边疆= borders.Item (whichBorder);
集(边疆,“线型”、风格、“重量”、重量);
流(“SetBorder误差函数。\ nError信息:\ n % s \ n”ME.message)
%的警告(“SetBorder误差函数。\ n % s ', ME.message)
结束
结束
结束
实验还显示,一个不能使用的任意组合枚举(限制是也 记录)。只有“厚”的重量是一个双线呈现;所有的人一行中等体重。
各种各样的东西没有记录,只留给反复试验发现……
上面可以清理和忘记尝试使用枚举,但这是暂时的权宜之计和有更重要的问题来解决,而不是继续把时间下鼠洞…
谢谢,你指着什么可以得到我所做的工作——大大地赞赏! !

登录置评。


崔
2021年6月10日首度
单和多目标视觉跟踪算法:
KCF, GOTURN , FairMOT , deepSort ,……是一些最好的和成功的算法近年来,但不幸的是,为什么没有实现“传感器融合和跟踪工具箱”,“deeplearning工具箱”和“计算机视觉工具箱”?

类别

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!