how to fill the value of "1" where ever you want in an array.

5 次查看(过去 30 天)
hello guys i want to fill "1"s in an array where ever i want, for example
for m = 1:64
t = ones(1,((64/4^level)))
if level = 1, then the output should be getting sequence of 16 "ones" filled from 1 to 16, remaining should be zeroes.which is happeneing using my code.
if level = 2, then the output should be getting sequence of 4 "ones" repeated 4 times in the positions from 1, 17,33,49.
end
im using ones(1,((64/4^level))) operation,,,, but for level 2, repetition of 1's sequence in the positions 1,17,33,49 is not happening, im a beginner kindly help me.
  4 个评论
Sandeep Kumar
Sandeep Kumar 2016-2-21
编辑:Sandeep Kumar 2016-2-21
sure sir, the original code is
N= 16; level =1;
for m = 1:N
t = ones(1,((N/4^level)))
end
%%for a 64 bit only level 1 and level 2 will be present
it was designed by me, its not generic.
k my main aim is if
N= 16 there will only level 1
N= 64 there will only level 1 and level 2
N= 256 there will be level 1 and level 2 and level 3. . .
if N= 16,(level = 1) it should be having 4 ones in the starting sequence, %%working using my code
if N= 64, for level 1, it should have 16 ones from the starting sequence %%working using my code
if N= 64, for level 2, it should be having 4 ones starting in the positions from 1,17,33,49, its like this 1)1,2)1,3)1,4)1,5)0,6)0......17)1,18)1,19)1,20)1,21)0....33)1,34)1..
if N=256, for level 1, it should have 64 ones from the starting sequence %%working using my code
if N= 256, for level 2, it should be having 16 ones starting in the positions from 1,65,129,193 its like this 1)1,2)1,3)1,4)1......,17)0,18)0,21)0....65)1,66)1,67)1....129)1,130)1 .....193)1,194)1
if N=256, for level 3, it should have 4 ones from the starting sequence 1)1,2)1,3)1,4)1,5)0,6)0......17)1,18)1,19)1,20)1,21)0....33)1,34)1.. ..241)1,242)1,243)1,244)1,245)0 thats it., i hope i gave my whole aim of the project.
Image Analyst
Image Analyst 2016-2-21
Is this homework? Can you try to think up the formula for computing "numberOfOnes" from "N" and "level", like I did in my answer below?

请先登录,再进行评论。

采纳的回答

Image Analyst
Image Analyst 2016-2-21
I just got a copy of the Mind Reading Toolbox, though it's just valid for this weekend. What I got out was:
% Initialize an output array
output = zeros(1, 64);
% Define level: 1 or 2
level = 2;
% Define the number of elements to assign: 16 or 4.
numElementsToAssign = 16 / level^2
% Define the increment between index numbers: 1 or 16.
increment = 15*level - 14
% Generate the indexes
indexes = 1 : increment : length(output)
% Finally, assign the outputs.
output(indexes(1:numElementsToAssign)) = 1
I gives what you asked for and, I think, gives you what you want, at least for levels 1 and 2 like you asked for. No guarantees if you want something weird for levels 3, 4, etc.

更多回答(1 个)

dpb
dpb 2016-2-21
_"repetition of 1's sequence in the positions 1,17,33,49..."
Use colon indexing--
t(1:16:LENGTH)=1;
where LENGTH is the maximum length of the vector wanted. The '1' and '16' can be computed and any relationship desired, of course.
I suggest reading and working thru the examples in the "Getting Started" documentation section to get a quick tutorial on Matlab syntax and such basic operations as the quickest way to get over the initial startup problem.
  1 个评论
Sandeep Kumar
Sandeep Kumar 2016-2-21
thanku for the answer sir , i tried it, it is working in a way, what i exactly meant is "repetition of 1's sequence in the positions 1,17,33,49..." its like this 1)1, 2)1, 3)1, 4)1, 5)0, 6)0 ...... 17)1, 18)1, 19)1, 20)1, 21)0.... 33)1,34)1.. upto 64 for N=64,level=2.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by