假设我有一个这样的矩阵 -
A = 1 2 3 4;
5 6 7 8
我想更改每一行中的某些值,但我想保留其中的一些,例如我想在每行0
和第二个元素1
中创建第一个元素。但是,我想保留原来的其余部分。结果将是这样的 -
A = 0 1 3 4;
0 1 7 8
感谢。
答案 0 :(得分:0)
在您的示例中,您想要更改给定列的每一行(即A(:,column)= newValue)
A = [1 2 3 4; 5 6 7 8]
A(:,1) = 0; A(:,2) = 1;
>> A
A =
0 1 3 4
0 1 7 8
答案 1 :(得分:0)
要更改每行中的某些值,您可以使用A(row,:) = newValue;
在您的示例中,您应该使用A(1,:) = 0;
和A(2,:) = 1;
答案 2 :(得分:0)
One-liner
A(:,1:2) = repmat([0 1],[size(A,1) 1])
修改1:此外,如果您想将最后一列更改为某个数字9
,请使用此 -
A(:,[1:2 end]) = repmat([0 1 9],[size(A,1) 1])
编辑2: 如果您想扩展更多列数,您可以创建一个列索引数组和另一个新值的数组。此代码可能有助于您理解 -
column_array = [1 2 6 7 8];
new_values_for_columns = [ 0 1 2 3 4];
A(:,column_array) = repmat(new_values_for_columns,[size(A,1) 1])