【发布时间】:2020-09-20 00:33:16
【问题描述】:
所以我提出了这个模拟面试问题,我必须在不使用函数 repelem 或 repmat 的情况下找到解决这个问题的方法。
仅允许使用以下格式的 3 行代码:(每行仅一个 = 运算符)
p=... , q1=.... , q2=....,
到目前为止,我只得到了一个使用 repelem 的解决方案,但是当我尝试更改我的代码时,我总是不得不在索引时使用更多的代码行。非常感谢你给我的任何提示:)
p=[4 2 5 3 1]
q1 = repelem((1:length(p)),p)
q2 = repelem(p,p)
问题来了,如果有人想自己尝试(专为 MATLAB 设计,但可以在任何地方完成)
令 p 为具有 k 个不同正整数元素且 s=sum(p) 的向量。两个向量 q1 和 q2 应确定为:
• q1 是长度为s 的向量。 q1 的前 p(1) 个元素等于 1,接下来的 p(2) 个元素等于 2,... . . ,最后的 p(k) 个元素等于 k。
• q2 是长度为 s 的向量。 q2 的前 p(1) 个元素等于 p(1),接下来的 p(2) 个元素等于 p(2),... . . ,最后的 p(k) 个元素等于 p(k)。
【问题讨论】:
-
示例:p=[4 2 5 3 1] ⇒ q1=[1 1 1 1 2 2 3 3 3 3 3 4 4 4 5], q2=[4 4 4 4 2 2 5 5 5 5 5 3 3 3 1]
-
为什么这个标签是python?
-
我会更改问题的标题。就目前而言,没有任何人想要解决同样的问题。
-
在 Paolo 的评论之后,一个更具描述性的标题可能是:不使用“repelem”的运行长度解码。另外,在问题文本中包含示例
标签: python matlab vector indexing