$\begingroup$
clear clc eta = 100; a= 0; xi=0.016; axis([0 0.01 0 1.1]); x = 0:0.0001:0.01; N = -a+1.6*(1/(xi*eta)); y=N; plot(x,y,'LineWidth',2); set(gca,'FontSize',10); 

Hi. I'd like to plot the function $N(x)$ (indeed, constant), on MATLAB, but the code above does not return any line on window. Why? Many thanks!

$\endgroup$1

3 Answers

$\begingroup$

I like to write it

y=N+0*x; 

Matlab automatically creates the array with the correct length. And, since you are multiplying it by 0, you create essencially a constant vector.

$\endgroup$1$\begingroup$

If you wanted to create an array of ones then you could do

y=ones(size(x)); 

or write

clear; clc; eta = 100; a= 0; xi=0.016; axis([0 0.01 0 1.1]); x = 0:0.0001:0.01; temp = ones(size(x)); N = temp.*(-a+1.6*(1/(xi*eta))); y=N; plot(x,y,'LineWidth',2); set(gca,'FontSize',10); 

Though, it is extremely unclear why you are writing

N = -a+1.6*(1/(xi*eta)); 

when you could just write

N = 1; 

or just make an array of ones and write

clear; clc; eta = 100; a= 0; xi=0.016; axis([0 0.01 0 1.1]); x = 0:0.0001:0.01; y = ones(size(x)); plot(x,y,'LineWidth',2); set(gca,'FontSize',10); 
$\endgroup$1$\begingroup$

Y and X should be the same size: y = N*size(x)

$\endgroup$3