c

댓글 수: 2

Shubham Gupta
Shubham Gupta 2019년 10월 3일
Not entirely sure, but is this what you want ?
V = [0,0,0,0]';
i = 2; % change i to assign 1 to the corresponding index
V(i) = 1; % generated V = [0; 2; 0; 0]
You said you 1 vector but your shows 4 different vectors with different name, what output do you want exactly?
H
H 2019년 10월 3일
Sorry for the confusion. Actually I want to have N number of vectors. And I gave examples of first 4 of those.
v = zeros(N,1);
for i = 1:N
v(i) = 1
end
When I do the above, I get all ones in one vector. But I want to generate N number of vectors, depending on the i value, the value "1" would take place on that specific cell, other cells would remain zero.

댓글을 달려면 로그인하십시오.

답변 (2개)

John D'Errico
John D'Errico 2019년 10월 3일

0 개 추천

Don't. Instead, use arrays to store them.
n = 4;
V = eye(n);
V
V =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
As you can see, the rows of V are exactly as you wish. You can access the i'th such vector using indexing.
V(2,:)
ans =
0 1 0 0
Steven Lord
Steven Lord 2019년 10월 3일

0 개 추천

Rather than making a large number of variables (which will clutter your workspace and be difficult to work with) instead I recommend making one variable and accessing parts of it as needed.
V = eye(4);
for k = 1:size(V, 2)
x = V(:, k) % Equivalent of Vk
% Work with x
end
Actually, if you want to iterate over the columns of V, for has an interesting property if you specify the range over which to iterate as a matrix.
V = eye(4);
for vec = V
disp(vec)
end
vec will take on each of the columns of V in turn.

카테고리

도움말 센터File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

질문:

H
H
2019년 10월 3일

편집:

H
H
2019년 11월 27일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by