【发布时间】:2015-07-24 22:39:40
【问题描述】:
在 Matlab 中,假设我有一个 3x1 向量。然后我想做一个 for 循环,将一个元素更改为零。这样我就可以从我的循环中得到(0,1,1)、(1,0,1) 和(1,1,0)。我该怎么办?
我试过了
for i = s
i = 0;
print(s);
end
其中 s 是我的向量,但它不起作用。请注意,我是编程初学者。
谢谢!
【问题讨论】:
在 Matlab 中,假设我有一个 3x1 向量。然后我想做一个 for 循环,将一个元素更改为零。这样我就可以从我的循环中得到(0,1,1)、(1,0,1) 和(1,1,0)。我该怎么办?
我试过了
for i = s
i = 0;
print(s);
end
其中 s 是我的向量,但它不起作用。请注意,我是编程初学者。
谢谢!
【问题讨论】:
我将向您展示一种更类似于 Matlab 的方法,而不是展示您的代码有什么问题:
n = 3; %// problem size
matrix = ones(n)-eye(n); %// n x n matrix with all ones except zeros at the diagonal
for k = 1:n %// pick each row
disp(mat2str(matrix(k,:))) %// create a string from n-th row and display it
end
结果:
[0 1 1]
[1 0 1]
[1 1 0]
【讨论】:
[0 1 1]、[1 0 1] 等,而不是它们的字符串表示。所以只需在for 循环中使用matrix(k,:))