How can I generate values randomly from another existing vecor?

조회 수: 2 (최근 30일)
Mira le
Mira le 2021년 4월 27일
댓글: Steven Lord 2021년 4월 27일
Hi everyone My problem is I want to generate a vector of values from other vector with zeros For example My vector is v1=[122,34,20,5,21] The new vector that I want to get is like that: V2=[122,0,20,0,0,5]

채택된 답변

J. Alex Lee
J. Alex Lee 2021년 4월 27일
how about
v1 = [122,34,20,5,21]
v1a = [0,v1]
N = numel(v1a)
ridx = randi(N,size(v1))
v2 = v1a(ridx)
  댓글 수: 3
Steven Lord
Steven Lord 2021년 4월 27일
Looking at the error message you posted in your other message I suspect your v1 vector is actually a column vector, not a row vector.
v1 = [1, 2, 3]
v1 = 1×3
1 2 3
v1a = [0, v1]
v1a = 1×4
0 1 2 3
v2 = [1; 2; 3]
v2 = 3×1
1 2 3
v2a = [0; v2]
v2a = 4×1
0 1 2 3
v2bWILLNOTWORK = [0, v2]
Error using horzcat
Dimensions of arrays being concatenated are not consistent.
In v2bWILLNOTWORK, 0 has 1 row and v2 has 3 rows. You can't put them side-by-side in a vector but you can stack them on top of one another as shown with v2a. Compare with v1a, where both 0 and v1 had 1 row and so could be stored side-by-side.
If I'd written v1a with [0; v1] that wouldn't have worked since 0 and v1 don't have the same number of columns.

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

추가 답변 (0개)


Help CenterFile Exchange에서 Get Started with MATLAB에 대해 자세히 알아보기





Community Treasure Hunt

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

Start Hunting!

Translated by