Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
matlab-从二维零件创建一维阵列_Matlab_Octave - Fatal编程技术网

matlab-从二维零件创建一维阵列

matlab-从二维零件创建一维阵列,matlab,octave,Matlab,Octave,你好,我有以下情况 h = [0,1,1,1; 0,0,0,0; 1,1,1,1]; 我将检查范围在0和h的行大小之间的传入值,即在本例中为2,。所以我的选择是0,1,2 现在我想创建一个一维数组(我们把它命名为j),如下所示 每当传入值为0时 j=[0,1,1,1] 下次如果传入值为1 那么j=[0,1,1,0,0,0,0] 等等。。。如何在matlab中实现这一点?谢谢 如果传入值为x,则可以执行以下操作: g = h.' j = g

你好,我有以下情况

      h = [0,1,1,1;
           0,0,0,0;
           1,1,1,1];
我将检查范围在0和h的行大小之间的传入值,即在本例中为2,。所以我的选择是0,1,2

现在我想创建一个一维数组(我们把它命名为j),如下所示

每当传入值为0时

j=[0,1,1,1]

下次如果传入值为1

那么j=[0,1,1,0,0,0,0]


等等。。。如何在matlab中实现这一点?谢谢

如果传入值为x,则可以执行以下操作:

g = h.'
j = g(1:(x+1)*size(h,2))

正如您所知,Matlab从1开始索引,因此您需要将1添加到索引0,1,2中,以获得h的行标识符。因此,如果输入是“索引”

j = h(index+1,:)
然后,对于下一个索引

j = [j h(index+1,:)]
以此类推。

试试这个(用
x
作为输入值的向量):

上面使用
x+1
作为索引来选择行的副本,然后将结果转换为单行向量。这里有一个测试:

>> h = [0 1 1 1; 0 0 0 0; 1 1 1 1];
>> x = [0 0 0];
>> j = reshape(h(x+1,:).',1,[])

j =

     0     1     1     1     0     1     1     1     0     1     1     1

你能更清楚地解释一下最后j的值是多少吗。例如,如果我只有三个0作为输入值,那么j=[0,1,1,1,0,1,1,1,1,0,1,1];i、 e.j取决于输入值。。。提前谢谢!我在以前的工作中使用了MatLab,但是我现在的计算机上没有安装它,所以我不能帮你检查这个。但至少应该有一些类似的方法可以起作用,我做了如下的h=[0,1,1,1;0,0,0,0;1,1,1,1];那么j=h(1:0*尺寸(h,2));j=Empty matrix:1-by-0i修复了索引内容,现在从一开始它就开始工作了,但是在j=g(1:3*size(h,2))之后,如果下一个传入值是1,我的j只有4个值…我设置它,所以x=1是第一行,x=2是前两行。所以j只有4个x=1的值,8个x=2的值,等等。如果你想让0表示“第一行”,1表示“前两行”,等等,你可以用(x+1)代替x。事实上,我刚才在回答中把x改成了(x+1)。现在我相信它应该匹配你想要的。标记它似乎一个接一个地接受值,而不是一次接受一行…?你是对的,我输入了错误的代码,我现在已经更正了它以接受整行。很抱歉搞混了,
>> h = [0 1 1 1; 0 0 0 0; 1 1 1 1];
>> x = [0 0 0];
>> j = reshape(h(x+1,:).',1,[])

j =

     0     1     1     1     0     1     1     1     0     1     1     1