< EDF Read<前一 刚体动力学-…>下一个> 带%s的格式化字符串的自定义语法\{SPRINTF} 发布的客人选择器,2018年10月19日 14次观看(过去30天)|0喜欢|0评论 格雷格的这周的选择是漂亮的sprintf语法使用\(左除)通过将福克斯. 一个简单的例子,说明了MATLAB的可扩展性。 使用以下语法创建一个格式化字符数组 c =“你好%s,我最喜欢的数字是% 0.5 f!”\ {"格雷格"π} c =“你好,格雷格,我最喜欢的数字是3.14159!” 左边的参数是格式定义,右边的参数是应用于格式定义的值的单元格数组。 这是怎么做到的? 作者将创建一个新的语法,用于在MATLAB中创建格式化的字符数组,其中左除(MLDIVIDE)操作符用于应用SPRINTF函数。 MATLAB允许重载许多运营商的。Will利用了一个对单元格数组不可用的运算符,并将其添加到MATLAB中的数据类型cell类中。 这个条目中的代码非常简单。它将MLDIVIDE的输入参数映射到SPRINTF的输入参数。 简单的光辉。 我应该学习新的语法吗? 从长远来看,如果在代码中没有一致地使用新语法(至少在特定的项目中),那么向代码中添加新语法会使事情变得更加困难。 注入了我对编码的哲学观点,“一致性是可读性的关键”。根据我的经验,我会花钱更阅读代码比编写代码更省时,因此应用一致的编码模式对我来说是一个关键实践,即使其他人不会看到代码。如果编写的代码是有用的,那么我可能需要在将来维护和增强它。在构建Simulink和Stateflow模型时,我应用了相同的思想。金宝app 我非常喜欢这种简洁的语法,因为一旦你学会了解释它们,更简洁的语法可以(但并不总是)减少认知负荷。 ["让我们通过包含以下语法来构造一个字符串:"+“% s !”\ {“格式”}"添加在一些"+'数字:%f, %。0d, %-04.4g'\{exp(1), rand*10, pi}] ans =2×1字符串数组“让我们通过包含这个语法来构造一个字符串:format!”“加上一些数字:2.718282,1e+00, 3.142” 一个类似的Javascript中的正则表达式采用了一种特殊的紧凑语法,用于常量格式的正则表达式。 但是,要小心!这不是一个标准语法,它没有出现在MATLAB文档。这将阻碍新加入项目的编码人员,他们不熟悉这种语法或重载MATLAB运算符的能力。 改进的机会 使用ISCHAR而且ISCELL函数在MLDIVIDE函数中测试适当的数据类型时,可能会在不损失可读性的情况下提高性能。目前,ISA函数代替。 抽搐,isa (“myArray”,“字符”);toc 运行时间为0.005289秒。 抽搐;ischar (“myArray”);toc 运行时间为0.000234秒。 也许这可以扩展到新的字符串在MATLAB R2016b中介绍的数据类型。或者应用于正则表达式相反! 像这样简洁的语法应该被构建到MATLAB语言中吗? 你曾经为你的类写过重载方法吗?这种类型的语法还可以如何使用呢? 让我们知道在这里. | 你现在正在关注这篇博文 您将在您的活动提要. 你可能会收到电子邮件,这取决于你的通知偏好. 类别: 选择 < EDF Read<前一 刚体动力学-…>下一个> 另请参阅 学会爱上正则表达式 博客 R2020b 博客 R2020b:模式(正则表达的新方式) 博客 verbatim:获取块注释的文本。 我需要o/p 漂亮的sprintf语法使用\(左除) 评论 如欲留言,请点击在这里登录您的MathWorks帐户或创建一个新帐户。