کلیدستان

نسخه‌ی کامل: سوال : توضیح برای دستور axis در کد متلب نوشته شده
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام ، من کد متلبی دارم که در خطهای 27 تا 29 رو متوجه نمیشم ، ممنون میشم راهنمایی کنید.
کد:
v=axis;
v(2)=t(end);
axis(v)
ادمین : ممنون ، بالاخره تونستم کد رو کپی کنم ، از دکمه # استفاده کردم.
کد:
function [s,t] = cosineGenerator(A,f,sFreq,npts,phase)
% Usage: [s,t] = cosineGenerator(A,f,sFreq,npts,[phase=0])
%Function returns a time vector t and the corresponding harmonic (cos) wave s
%of length npts with amplitude A and frequency f [Hz],
%sampled at frequency sFreq[Hz or samples per second].
%The argument 'phase' is in degrees and is optional. When the phase is omitted
%it is assumed that the phase is zero. For a sine use phase=-90.
%When no LHS arguments are used (nargout is 0) the sgnal is plotted.
if nargin == 4,
phase = 0;
elseif nargin < 4 || nargin > 5,
help cosineGenerator
error('Incorrect use of the function');
end
%convert phase to radians
phase = phase / 180 * pi;
%sampling interval
dt = 1 / sFreq;
%generate the time vector
t = (0:npts-1)' .* dt;
%generate the wave
s = A .* cos(2 * pi * f .* t + phase);
%plot if no values are to be returned
if nargout == 0
subplot(2,1,1)
plot(t,s)
v=axis;
v(2)=t(end);
axis(v)
grid on
xlabel('Time [s]')
ylabel('Units')
title('Signal')
subplot(2,1,2)
pts2plot = 20;
plot(t(1:pts2plot),s(1:pts2plot),'o-')
v=axis;
v(2)=t(pts2plot);
axis(v)
grid on
xlabel('Time [s]')
ylabel('Units')
end
سلام دوست عزیز .
برای اینکه منظورم رو خوب متوجه بشید ، نرم افزار متلب رو باز کنید و دستور زیر رو بنویسید :


کد:
axis


نتیجه به صورت زیر هست :


کد:
ans =

    0    1    0    1


و همچنین یک پنجره شکل به صورت زیر نمایش داده می شود :


[attachment=44]




در واقع دستور axis ، برای تعریف حدود محورهای مختصات نمایش داده شده در شکل می باشد و تعیین کرده است که در دو جهت X و Y ، مقادیر مربوط به چه بازه هایی از محورهای مختصات نمایش داده شود .
در کدی که شما ذکر کردید ، ابتدا مقدار axis را در یک بردار به نام v ذخیره کرده است و سپس یکی از حدود آن را تغییر داده و در آخر نیز ، بردار axis را برابر بردار v تعریف شده ، قرار داده است . بنابراین کل روندی که انجام شده این است که ابتدا مقدار حدود محورهای مختصات تعریف شده برای نمایش شکل را دریافت کرده و سپس یکی از آنها را تغییر داده است .


کدهای متلب زیر رو تست کنید :


کد:
v=[-1 1 -1 1]
axis(v)


نتیجه این است که حدود محورهای مختصات ، از 1- تا 1 خواهد بود . شکل زیر نمایش داده می شود :