我如何添加n列矩阵?

51视图(30天)
汤姆
汤姆 2021年9月27日
编辑: Stephen23 2021年9月28日
亲爱的专家,
我有一个矩阵X (4082 x2)。现在我想添加例如两列矩阵的每一个细胞= 0。
我´s´已经做到了:
amount_rows =元素个数(X (: 1));
randomdata =兰德(amount_rows, 1);
added_column = 0 * randomdata;
X = [X added_column added_column];
到目前为止,这工作完全好但我的问题是,我现在有一个数据集需要添加超过100列。是相当恼人的添加这些added_column到支架的100倍(我希望你知道我的意思)。最重要的是,我想让脚本为每个数据集工作,让它自动添加“added_collumn”例如n次。不知怎么的这样:
X = [X (added_column) * n]
(在上面描述的情况下n = 2)
我知道这是不正确的,但我希望你明白我的意思。
提前谢谢。
亲切的问候,TG

接受的答案

Stephen23
Stephen23 2021年9月27日
编辑:Stephen23 2021年9月28日
更简单、更多样化的和更有效的方法是使用0:
R =大小(X, 1);
C = number_of_new_columns;
X = [X, 0 (R, C)];
另一个简单的方法是使用索引(隐式地填补了其他新元素0):
X (1 + C) = 0%谢谢图像分析
2的评论
史蒂文的主
史蒂文的主 2021年9月27日
在一般情况下,你想增加一个矩阵与向量的副本(不一定是零向量)可以使用 repmat
=魔法(3)
一个= 3×3
8 1 6 3 5 7 4 9 2
v = [42;-99;南)
v = 3×1
42 -99南
B = [A, repmat (v, 1、5)]
B = 3×8
8 1 6 42 42 42 42 42 3 2 5 7 -99 -99 -99 -99 -99 4 9南南南南南
或者如果你需要增加一系列的向量可以由算术运算可以使用隐式扩张。
c = [1;2;3]
c = 3×1
1 2 3
d = 1:5
d = 1×5
1 2 3 4 5
E = (A、v c + d)% c + d三五矩阵
E = 3×9
8 1 6 42 2 3 4 5 6 3 5 7 -99 3 4 5 6 7 4 9 2南4 5 6 7 8

登录置评。

更多的答案(0)

类别

找到更多的在调整和重塑矩阵帮助中心文件交换

下载188bet金宝搏


释放

R2019b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的