# Why can i not plot this?

조회 수: 3(최근 30일)
Emil Cramer 2015년 10월 28일
답변: Thorsten 2015년 10월 28일
i run this script clc
close
clear
%input%
Q=0.034;
T=0.0454;
S=0.0014;
t=365*24*60*60;
%equation%
for x=1:1:10;
y=(2.30*Q)/(4*pi*T)* log10((2.25*T)/(x.^2*S))+ (2.30*Q)/((4*pi*T))*log10(t);
end
plot(x,y)
but it does not show the plot on the figure
##### 댓글 수: 1표시숨기기 없음
Stephen23 2015년 10월 28일

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

### 답변(2개)

Rob Campbell 2015년 10월 28일
편집: Rob Campbell 2015년 10월 28일
You can't plot anything because your code is full of mistakes. For starters, x and y are both just one number so you don't have an series of data points to plot. The loop is wrong. Your code is also very difficult to read and badly laid out and this is contributing to your confusion. If you correct those things, you will have an easier time figuring out what's wrong. Do the following:
1. Store your code in a .m file (ideally as a function: http://uk.mathworks.com/help/matlab/ref/function.html) and run that file.
2. Don't cram too much stuff on each line. One statement per line. Look at the code examples in the MATLAB docs and emulate that style.
3. Don't start with "clear". Blindly clearing the workspace isn't desirable and if you use a function then the variables are all local to it and will never need cleaning like this anyway.
##### 댓글 수: 0표시숨기기 이전 댓글 수: -1

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

Thorsten 2015년 10월 28일
You don't need the for loop, but you have use ./ before (x.^2*S)):
x = 1:10; % no need to use :1:, 1 is the default increment
y=(2.30*Q)/(4*pi*T)* log10((2.25*T)./(x.^2*S))+ (2.30*Q)/((4*pi*T))*log10(t);
plot(x,y)

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

### 범주

Find more on Interactive Control and Callbacks in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!