【问题标题】:How to create more than one matrix in a row using matlab如何使用matlab在一行中创建多个矩阵
【发布时间】:2016-08-18 14:38:49
【问题描述】:

我试图得到一系列来自同一个原始的向量,举个简单的例子,假设这个向量V= (1,2,3,4,5,6,7,8,9,10)(当然我的更大)

第一个向量必须如下所示:

R1=(1,3,5,7,9)= V(1:1:end) 
The second vector:
R2=(2,4,6,8,10)=V(2:1:end)
The third vector:
R3=(3,5,7,9)=V(3:1:end)
The fourth vector:
R4=(4,6,8,10)=V(4:1:end)
...
R8=(8,10)=V(8:1:end)

所以我的问题是:

  1. 有没有更简单的方法可以得到这个结果?
  2. 如何知道distance = 1可以从V获得的Ri向量总数?

【问题讨论】:

  • 如何定义两个向量之间的距离?另外,请注意,您的 Ri 向量不等于您的 RHS

标签: matlab function matrix indexing


【解决方案1】:

使用 Matlab 的单元格对象,它可以在每个单元格中保存一个向量。 使用 for 循环逐渐填充此单元格对象。

代码示例:

%initialize V
V= [1,2,3,4,5,6,7,8,9,10]; 
%initialize an empty cell of size [10,1]
R= cell(length(V)-2,1); 

%fill the cell
for ii=1:length(R)
   R{ii} = V(ii:2:end); 
end

%prints results
for ii=1:length(R)
   R{ii} 
end

结果(每一行是一个不同的向量):

 1     3     5     7     9
 2     4     6     8    10
 3     5     7     9
 4     6     8    10
 5     7     9
 6     8    10
 7     9
 8    10

【讨论】:

  • 非常感谢 drorco,我做到了,但元胞数组似乎只是矩阵的一个元素。我怎样才能让所有的数字都在这个 R 矩阵中占据一个位置?
  • R 是列单元格向量,每个单元格向量都包含行数字向量。这就是为什么您可以拥有缺少元素的“一种矩阵”。每个号码都可以通过R{ii}(jj) 地址访问。
  • 而不是 R1,R2,R3...R8,您的向量名称现在是:R{1},R{2},R{3},...R{8} .例如,为了访问向量 1 的第 j 个元素,编写:R{1}(j)
  • 你怎么知道 length(V)-2 是合适的尺寸?为什么是 2?
  • 很高兴为您提供帮助!我从您的示例中了解到,根据您的问题,2 是跳转因子,因此如果数组包含 N 个元素,则在此问题中只能提取 N-2 个向量。你明白为什么了吗?
猜你喜欢
  • 2018-07-12
  • 2023-03-09
  • 2015-08-05
  • 1970-01-01
  • 1970-01-01
  • 2021-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多