如何在Matlab中的数组变量末尾追加新的值

1. 在行向量末尾追加新数值

在实际的Matlab使用中,遇到了这样的一个问题,即在某变量的结尾还需要添加新的变量。

比如一行数据a = [1 2 3 4],那么如何在4的末尾添加一个5呢?利用方括号进行矩阵拼接可以解决这个问题。请看下面的例子:

a = [1 2 3 4 ]; % 已有行向量
>>  % >>表示实时运行结果
a =
     1     2     3     4
     
a = [a,5]  % 利用方括号在a向量的结尾追加新数值5
>>
a =
     1     2     3     4     5

2. 在二维数组末尾追加新的一列

若想在二维数组末尾追加新的一列,该如何实现呢?

a = [1 2 3;4 5 6;3 6 9]  % 建立一个三行三列的矩阵
>>  
a =
     1     2     3
     4     5     6
     3     6     9
b = [10 11 12];  % 要添加到a末尾的数据
a = [a,b']  % 将b转置为列向量再追加到a的最后一列
>>
a =
     1     2     3    10
     4     5     6    11
     3     6     9    12

3. 保存循环中的中间变量

结合上面的两个例子,我们知道了在数组末尾追加新数据的方法。现在来看看怎么应用这样的小技巧。

考虑这样一种情况:假如有一个变量位于for循环中,中间变量temp会随着循环不断改变数值,那么如何用另一个变量a来记录下temp的所有数值呢?利用变量追加可以解决这个问题,请看下面的例子:

a = [];  % 预设存储变量
for i = 1:10
	temp = ones(3,1).*i;  % 生成3行1列全1数据
	a = [a,temp];  %  将每次循环的一列数据添加到a中
end
>>
a =
     1     2     3     4     5     6     7     8     9    10
     1     2     3     4     5     6     7     8     9    10
     1     2     3     4     5     6     7     8     9    10
>>
temp =
    10
    10
    10

综上可知,方括号可以实现数组的拼接。除此之外,还有horzcat指令来实现类似的功能,具体的用法大家可以查询Matlab自带的帮助文档,里面有非常具体的数组水平拼接的例子。

horzcat()  % Matlab指令名称

猜你喜欢

转载自blog.csdn.net/qq_31628691/article/details/110501156