電子產(chǎn)業(yè)一站式賦能平臺

PCB聯(lián)盟網(wǎng)

搜索
查看: 16|回復: 0
收起左側(cè)

【好玩的源碼】MATLAB 繪制動態(tài)正弦函數(shù)

[復制鏈接]

238

主題

238

帖子

1400

積分

三級會員

Rank: 3Rank: 3

積分
1400
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2021-10-23 09:00:00 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
點擊上方藍字和“好玩的MATLAB”一起快樂玩耍吧!
, a$ R4 _0 X, f$ ]$ P; G$ M) u
$ D6 z& C8 k& e- D2 n1 m
) a$ @7 c) [3 C4 ]好玩的matlab- {+ q, I) i& `% g% z9 Z0 {" B7 g. T
帶你喜歡不一樣的matlab新玩法% k  e9 b% |0 F9 r, ], J
+ |, g* Z8 w6 a8 F- r( `/ t% h8 |' G
今天有空整理一下抖音“好玩的matlab”的視頻源碼,分享一下供大家學習參考。
& R( i$ B3 K5 t' F. z/ H01/ R& B- A" R" J# \
視頻效果
  G, P; u7 t4 H9 W4 L- [, }: Q, |. g8 G" i
01
/ k# U* w* h/ g+ s# O源碼如下
% U: \! I: K6 I
  • clear ;clc;close all;Np = 100;            % 空間點數(shù)dx = 2*pi/Np;        % 步長x  = 0:dx:(6*pi);    %  x 范圍7 E) S3 Q3 X1 w9 w: J+ v' i
    f1sin = sin(x);        f1cos = cos(x);( z, D6 Y0 E5 r- }
    Nt = 100;                % 圓上的點數(shù)dtheta = 2*pi/Nt;        % 圓上的點步長theta  = 0:dtheta:2*pi;  % 旋轉(zhuǎn)2pi
    " ^! `- E+ A- S$ |% 畫圓x1=cos(theta);y1=sin(theta);
    ; G; r# |% p! L0 _: ?- @Lx=length(x);Lw=2; Fs=12;f1=figure('color',[0,0,0]);. I2 B6 ?: ]1 Z1 h
    pausefor i=1:length(x)    %disp([num2str(i) ' of ' num2str(Lx)])    clf;    sp1=subplot(1,2,1);    %  -- 1st harmonic ---    plot(x1,y1,'-.m','LineWidth',1); hold on; grid on;    line([0 f1cos(i)],[0 f1sin(i)],'Color','w','LineWidth',1,'LineSmoothing','on');    set(sp1,'Position',[0.0400    0.1800    0.4    0.677],'color',[0,0,0],'XColor',[1 1 1],'YColor',[1 1 1])    xlim([-2.5 2.5]); ylim([-2.5 2.5])%         axis equal        [xf1, yf1] = ds2nfu(sp1,f1cos(i),f1sin(i));     % Convert axes coordinates to figure coordinates for 1st axes    line(f1cos(i),f1sin(i),10,'LineStyle','-.','MarkerSize',8,'MarkerFaceColor','b','color','b')        sp2=subplot(1,2,2);    %  -- 1st harmonic ---    plot(x(1:i),f1sin(1:i),'LineWidth',Lw,'Color','b'); hold on; grid on;        ylim([-2.5 2.5]); xlim([0 19])    set(sp2,'Position',[0.48    0.178200    0.49    0.680],'color',[0,0,0],'XColor',[1 1 1],'YColor',[1 1 1]);        % Convert axes coordinates to figure coordinates for 1st axes    [xg1, yg1] = ds2nfu(x(i),f1sin(i));    annotation('line',[xf1 xg1],[yf1 yg1],'color','g','LineStyle',':','LineWidth',2);    pause(0.00001);end5 @1 ]# N5 e$ J- Q9 ~
    $ t- c2 R3 |* n# G) N" T3 B2 C% R7 l
  • function varargout = ds2nfu(varargin)%% Process inputsnarginchk(1, 3);% Determine if axes handle is specifiedif length(varargin{1})== 1 && ishandle(varargin{1}) && strcmp(get(varargin{1},'type'),'axes')    hAx = varargin{1};  varargin = varargin(2:end);else  hAx = gca;end;errmsg = ['Invalid input.  Coordinates must be specified as 1 four-element
    4 i8 S& i$ U  y. ?, F' ...  'position vector or 2 equal length (x,y) vectors.'];7 a2 E- o3 m/ @2 [" [
    % Proceed with remaining inputsif length(varargin)==1  % Must be 4 elt POS vector  pos = varargin{1};  if length(pos) ~=4,     error(errmsg);  end;else  [x,y] = deal(varargin{:});  if length(x) ~= length(y)    error(errmsg)  endend) ^( L1 y" D( N4 n
    %% Get limitsaxun = get(hAx,'Units');set(hAx,'Units','normalized');axpos = get(hAx,'Position');axlim = axis(hAx);axwidth = diff(axlim(1:2));axheight = diff(axlim(3:4));
    * o% J" A1 K; W8 H1 y" c# L: u%% Transform dataif exist('x','var')  varargout{1} = (x-axlim(1))*axpos(3)/axwidth + axpos(1);  varargout{2} = (y-axlim(3))*axpos(4)/axheight + axpos(2);else  pos(1) = (pos(1)-axlim(1))/axwidth*axpos(3) + axpos(1);  pos(2) = (pos(2)-axlim(3))/axheight*axpos(4) + axpos(2);  pos(3) = pos(3)*axpos(3)/axwidth;  pos(4) = pos(4)*axpos(4)/axheight;  varargout{1} = pos;end! g: H2 l4 W5 k. O
    %% Restore axes unitsset(hAx,'Units',axun)
    ( Q  Y$ Q: N, C: y5 f/ T4 j往期精彩回顧
    - I9 ]0 R* l) F1 Q& ?
    ( L4 C/ ^1 B/ c9 `* @) ^4 E, Z5 T推薦 | 源碼分享' k: A; `7 j! {5 d8 Q# t
    推薦| 【高級繪圖】MATLAB怎么將圖形局部放大9 ]) w+ w/ [+ g% M, H) J
    ' F- T' d+ H  F. o6 \& }
    # P7 E( Q3 s; s$ h9 b2 N4 W& b
  • 回復

    使用道具 舉報

    發(fā)表回復

    您需要登錄后才可以回帖 登錄 | 立即注冊

    本版積分規(guī)則


    聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表