有人可以解释这行 MATLAB 代码吗?
Posted
技术标签:
【中文标题】有人可以解释这行 MATLAB 代码吗?【英文标题】:can someone explain this line of MATLAB code? 【发布时间】:2015-02-20 17:49:36 【问题描述】:我已经提供了一个链接,该链接指向此问题的解决方案的图片。 http://imgur.com/gallery/EXVaxEc/new
有人可以解释第一行代码C=char(100*ones(4,5))
中发生的事情吗?我知道我们这样做是在预分配一个矩阵,但我不明白为什么我们要包含100*ones
。为什么不能仅使用char(4,5)
正确分配矩阵,从而预先分配一个带有字符串作为输入的 m4x5 矩阵,而不是双精度数?
非常感谢 - 我是编程和学习 MATLAB 作为我的第一语言和平台的新手。
【问题讨论】:
【参考方案1】:1) 创建 4x5 矩阵 2) 将其乘以 100,从而创建 100 的 4x5 矩阵 3) char() 将其转换为 ASCII 码为 100(即 'd')的字符矩阵。 结果是 'd's 的 4x5 矩阵。
【讨论】:
'd' 是任意的吗?他们可以为 e 提供 101 吗?【参考方案2】:这是C=char(100*ones(4,5))
的分步操作。
1)创建一个 4 x 5 的矩阵。
2)然后将该矩阵乘以 100。
3) 然后从步骤 2 中的结果矩阵生成一个字符矩阵。char
函数将整数转换为它们各自的 ASCII 字符。请查看ascii table。前几个字符是非字母字符,因此作者想用d
初始化字符矩阵,即(100 * 1),即ascii中的d
。
您不能使用char(4,5)
,因为char 函数需要一个整数数组/矩阵来转换为字符矩阵。
【讨论】:
以上是关于有人可以解释这行 MATLAB 代码吗?的主要内容,如果未能解决你的问题,请参考以下文章