# How to take x as a vector in for loop?

38 views (last 30 days)

Show older comments

NN=zeros(nx+1,nx+1);

xx=0.998;

for i=1:nx+1

count=1;

for x=dx:length: nx+1

if(i-1)*xx<=x<=i*xx

i;

NN(i,count)=(x-(i-1)*dx)/dx;

elseif i*xx<=x<=(i+1)*xx

i;

NN(i,count)=((i+1)*dx-x)/dx;

end

NN(NN<0)=0;

count=count+1;

end

end

This code shows dimension error in

T_check = interp1(xts,pts,x,'linear');

because x is showing only one value here. Anyone please guide me how to correct x?

##### 1 Comment

Stephen23
on 7 Sep 2017

### Accepted Answer

Eric
on 7 Sep 2017

The variable x here is a for loop counter, which means it will iterate through the values given by dx:length:nx+1 and therefore only ever have one value at a time. If you want x to be the entire vector, set x=dx:length:nx+1 again on its own after the for loop.

Protip: You can set x before the for loop as well and change the iterator to

for i=1:size(x)

or something of that nature. Then you can index into x using x(i) and still have x as a vector and only look at a single value in x.

Protip: Use ctrl-i for proper indenting, as Stephen described in his comment. It really does make reading code easier for both you and us on MATLAB Answers.

Protip: Do not use MATLAB functions as variable names (e.g. length, count). Choose names like xlength or counter, even if you are not using the MATLAB functions. This way you will not override the MATLAB function now or in the future and will avoid any headaches that that may cause.

##### 1 Comment

Stephen23
on 7 Sep 2017

"Use ctrl-i for proper indenting... It really does make reading code easier for both you and us on MATLAB Answers."

Code that is easier to read is easier to understand. Code that is easier to understand has fewer bugs. Code that has fewer bugs wastes less of your life debugging.

Summary: Indent your code consistently!

### More Answers (1)

Qudsiya Irum
on 8 Sep 2017

Edited: Stephen23
on 8 Sep 2017

##### 2 Comments

Eric
on 8 Sep 2017

"If you want x to be the entire vector, set x=dx:length:nx+1 again on its own after the for loop."

As I mentioned previously, the way to get x as a vector with minimal changes to your code is to add the line

x =dx:xlength:nx+1

to the end of your code.

### See Also

### Categories

### Community Treasure Hunt

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

Start Hunting!