如何在MATLAB中创建模式为[1 2 5 6 9 10 13 14 17 18 ....]的向量?

丹尼尔·莫滕森

假设我们要使用模式创建一个向量:

[1   3   5   7   9] 

我们可以轻松地写

1:2:10

但是,如果我想要这种模式,我应该写些什么:

[1 2 5 6 9 10 13 14 17 18 ....]

这背后的想法是我有一个很长的列矩阵:

[-0.41416   0.37756  -3.39666  -0.42352   0.83481  -0.66782  -0.75471   0.54008  -0.60284 -1.43141  -1.10128  -0.18244]

我想把它变成:

[-0.41416   0.37756 0 0  -3.39666  -0.42352 0 0   0.83481  -0.66782 0 0  -0.75471   0.54008 0 0 -0.60284 -1.43141 0 0 -1.10128  -0.18244 0 0]

对于每2个值,我想添加两个零。

如果我只想在每个值之间都设置0零,这就是解决方法。

l = length(g);
nu = rows(g);
G = zeros(nu, l*nu);
for i = 1:nu
  G(i, i:nu:l*nu-1+i) = g(i, 1:l);
end
g = G; 

该代码将改变这种模式

   [1.4392e-04   5.6149e-07   1.4572e-04  -1.1104e-05   1.4720e-04  -3.3176e-05   1.4836e-04
   2.4174e-04   6.5988e-06   2.7917e-04   5.3787e-06   3.1924e-04   1.0706e-06   3.6204e-04]

变成这个模式:

   [0.000221   0.000000  -0.000420   0.000000   0.000570   0.000000  -0.000418   0.000000
   0.000000   0.017647   0.000000  -0.002033   0.000000   0.017248   0.000000  -0.001855]
斯科特·约翰逊(L. Scott Johnson)

您可以堆叠两个行向量(第二个等于一个加上第一个),然后对其进行整形:

>> a=[1:4:17];
>> b=reshape(vertcat(a,a+1),1,[])

b =

     1     2     5     6     9    10    13    14    17    18

相同的想法扩展到您的第二个“此原因背后的原因”示例:

>> c=[-0.41416   0.37756  -3.39666  -0.42352   0.83481  -0.66782  -0.75471   0.54008  -0.60284 -1.43141  -1.10128  -0.18244];
>> d=reshape(c,2,[]);
>> e=reshape(vertcat(d,0*d),1,[])

e =

  Columns 1 through 12

   -0.4142    0.3776         0         0   -3.3967   -0.4235         0         0    0.8348   -0.6678         0         0

  Columns 13 through 24

   -0.7547    0.5401         0         0   -0.6028   -1.4314         0         0   -1.1013   -0.1824         0         0

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何生成数字序列1,2,5,6,9,10,13,14,

我希望输出像 [[1,2,3,4,5,6,7,8,9,10],[2,4,6,8,10,12...18,20] ,[3,6,9...27,30].....[9,18,27..90]]

如果display(15)我想要结果1,2,3,4,5,6,8,9,10,12,15,16,18,20,24

如何重复序列:r中的1,2,3,4,5,6,1,2,3,4,5,6,7,8,9,10,7,8,9,10

如何将Python apscheduler运行作业设置为每天9,11,14,17,18时钟

如何将“ 17/10/2016 6:52:13”解析为DateTime

需要求和a,b,c,除非它们等于13,14,17,18,19

选择第n个孩子选择1,2,5,6,9,10等

拆分数据时出现问题:KeyError: "None of [Int64Index([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], dtype='int64')] are in [列]"

如何转换list1中的list = [1,2,[3,4],[5,6],7,[8,9,10]] = [1,2,3,4,5,6,7,8 ,9,10]在python中?

Python:将1,2,3-7,8,9,10变成这样的字符串1,2,3,4,5,6,7,8,9,10

为什么是Array.new(10){| e | e = e + 2}产生[0 2 4 6 8 10 12 14 16 18]?

在用户键入(1 2 3 4 5 6 7 8 9 10)时无法显示正确的最大值

如何卸载蟒蛇13年2月17日,并保持蟒蛇3.7.6如在Debian 9默认版本?

将在 for 循环中创建的所有变量视为向量,例如 `c(x1,x2,x3,x4,x5,x6,x7,x8,x9,x10)`

我想把数组 [1,2,3,4,5,6,7,8,9,10,11] 变成数组 [1,2,3,4,5,6,7,8,9,1 ,0,1,1] 仅使用此算法

数据库值为 ["", "5", "1", "2", "8", "6", "9"] 在 Rails Console 中显示为 "[\"\", \"5\", \"1\"、\"2\"、\"8\"、\"6\"、\"9\"]"?

值 1、5、9、13、17、21、25 和 29 的特殊之处,以便将它们提升为从 Python 单列表到字典的键

重新排列 PHP 数组,将 1、2、3、4、5、6、7、8、9 重新排序为 1、4、7、2、5、8、3、6、9

如何使用 Angular 2、4、5、6、7、8、9 创建层次结构

C中{0,1,2,3,4,5,6,7,8,9}外的条件

ValueError: 基数为 10 的 int() 的无效文字:'2 3 6 6 5'

Javascript:根据模式拆分数组:项1、5、10、2、6、11、3、7、12

如何使用 R 创建向量 (10^16 + 1, 10^16 + 2, ... , 10^16 + 1000)?

元素1,6、7、10、13等的nth-child

Java 中用于匹配 C 10 10 或 L 1 2 6 2 或 R 14 1 8 3 的正则表达式

将数组的元素添加为a [0],a [1] + a [2],a [3] + a [4] + a [5],a [6] + a [7] + a [8] + a [9] ...等等

Javascript - 找到 1-4-7, 2-5-8, 3-6-9 iretartions?

0至10 ^ 18的模数为10 ^ 9 + 7的数字的总和