【Matlab】关于Matlab的一些代码片段
来源:互联网 发布:task host windows解决 编辑:程序博客网 时间:2024/05/21 10:02
转载,请保持连接:http://blog.csdn.net/stalendp/article/details/44904639
这篇文章收集关于Matlab的一些代码片段,以便查阅:
1. 方波
function [] = myFunc(n) t = 0:0.001:2; y = myFunc0(t, n); figure; plot(t, y);end% 方波function [ y ] = myFunc0( t, n )rt = 0;for k = 0:n rt = rt + sin(2*pi*(2*k+1)*t)/(2*k+1);endy = rt * 4 / pi;end方波图如下:
2. 打印3D曲面
[x,y] = meshgrid(-8:.1:8); z = (2.*x.*y)./(x.*x + y.*y);mesh(x,y,z);
3. 一些打印技巧
% example 1x = linspace(0,pi);y = sin(x);ymax = max(y);figure(1)plot(x, y, '-b')hold onplot(xlim, [1 1]*ymax, '-r')hold offaxis([xlim 0 1.1])% example 2x = linspace(0,5,1000);y = sin(100*x)./exp(x);ax1 = subplot(2,1,1);plot(x,y)ax2 = subplot(2,1,2);plot(x,y)xlim(ax2,[0 1])
4. 函数的一些使用技巧(function handler, anonymous function);
可以使用matlab中的类来 更好的管理函数模块,请参考5中的方法
function study(n) sqr = @(nn) nn.^2; C = {@e1, @e2, @e3, @e4, @() sqr(3)}; C{n}()end%相关快捷键:Ctrl+R, Ctrl+T, Ctrl+I %{ %}function e1 disp('This is example1'); figure(1) x = linspace(0,pi); y = sin(x); ymax = max(y); plot(x, y, '-b') hold on plot(xlim, [1 1]*ymax, '-r') hold off axis([xlim 0 1.1])endfunction e2 disp('This is example2'); figure(2) x = linspace(0,5,1000); y = sin(100*x)./exp(x); ax1 = subplot(2,1,1); plot(x,y) ax2 = subplot(2,1,2); plot(x,y) xlim(ax2,[0 1])endfunction e3 disp('This is example3'); figure(3) [x,y] = meshgrid(-8:.1:8); z = (2.*x.*y)./(x.*x + y.*y); mesh(x,y,z); endfunction e4 disp('This is example4'); figure(4) myFunc(20);end
5. 用类的方式来管理函数模块
classdef myclass properties end methods function e1(obj) disp('This is example1'); figure(1) x = linspace(0,pi); y = sin(x); ymax = max(y); plot(x, y, '-b') hold on plot(xlim, [1 1]*ymax, '-r') hold off axis([xlim 0 1.1]) end function e2(obj) disp('This is example2'); figure(2) x = linspace(0,5,1000); y = sin(100*x)./exp(x); ax1 = subplot(2,1,1); plot(x,y) ax2 = subplot(2,1,2); plot(x,y) xlim(ax2,[0 1]) end function e3(obj) disp('This is example3'); figure(3) [x,y] = meshgrid(-8:.1:8); z = (2.*x.*y)./(x.*x + y.*y); mesh(x,y,z); end function e4(obj) disp('This is example4'); figure(4) myFunc(20); end endend
6. 当然matlab还有非常赞的publish功能
,请参考:Publishing MATLAB Code from The Editor
7. 高分辨率下,matlab自动改变分辨率的bug的解决方案
:Matlab Changes reslution after opening simulink
8.用LaTeX来输出公式; 更多公式符号请参考
:https://en.wikibooks.org/wiki/LaTeX/Mathematics
8-0)用浏览器来编辑LaTeX公式,代码如下:
<!DOCTYPE html><html><head> <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> <title>tex texample</title></head><body> $$ 0 \leq \lim_{n\to \infty}\frac{n!}{(2n)!} \leq \lim_{n\to \infty} \frac{n!}{(n!)^2} = \lim_{k \to \infty, k = n!}\frac{k}{k^2} = \lim_{k \to \infty}\frac{1}{k} = 0.$$</body></html>
8-1)积分公式
x = linspace(0,3);y = x.^2.*sin(x);plot(x,y)line([2,2],[0,2^2*sin(2)])str = '$$ \int_{0}^{2} x^2\sin(x) dx $$';text(0.25,2.5,str,'Interpreter','latex')annotation('arrow','X',[0.32,0.5],'Y',[0.6,0.4])
8-2) 求和公式
x = linspace(-3,3);y = sin(x);plot(x,y)y0 = x;hold onplot(x,y0)y1 = x - x.^3/6;plot(x,y1)hold offstr = '$$\sin(x) = \sum_{n=0}^{\infty}{\frac{(-1)^n x^{2n+1}}{(2n+1)!}}$$';% text(-2,1,str,'Interpreter','latex')title(str,'Interpreter','latex');
9. Matlab字体设置;
home->preference->Fonts; 推荐字体:雅黑、Consolas、Mono;其中Mono、Consolas都不支持中文,可以用和雅黑的结合体(点击链接可以转到下载页面):雅黑+Mono, 雅黑+Consolas;
另外,介绍一篇关于编程字体的文章:有哪些适合用于写代码的西文字体?
10. 漂亮地输出公式:
A = sym(pascal(2));B = eig(A);pretty(B)// 结果如下:/ 3 sqrt(5) \| - - ------- || 2 2 || || sqrt(5) 3 || ------- + - |\ 2 2 /
11. Matlab打印矩阵的LaTeX的获取:
A = [1 2 3; 4 5 6; 7 8 9];latex_table = latex(sym(A))
输出结果为:
12. pretty 和 LaTeX输出的区别:
同样一个矩阵,可以在控制台输出(用pretty),也可以在plot窗口或者publish页面(用LateX)显示。
用11中的矩阵做例子:
%% 测试 pretty 和 LaTeXA = [1 2 3; 4 5 6; 7 8 9];% pretty 代码pretty(sym(A));% plot 代码:str = ['$$', latex(sym(A)), '$$'];title(str ,'Interpreter','latex')
13. 编辑LaTeX公式的工具
macOS平台:texmaker + mactex, windows平台:texmaker + miktex;
相关地址:
texmaker: http://www.xm1math.net/texmaker/
mactex:https://tug.org/mactex/
miktex: http://miktex.org/
简单的代码:
\documentclass[11pt]{article}\begin{document}This is my first LaTeX document.Suppose we are given a rectangle with sidelengths ${x+1}$ and ${x+3}$. The the equation$$A=x^2+4x+3$$represents the area of the rectangle.\end{document}
然后点击Quick Build,就可以生成pdf文档了。视频教程如下:https://www.youtube.com/watch?v=SoDv0qhyysQ
14. 关于LaTeX的技巧
参考:Cross referencing sections and equations
\section{Math references} \label{mathrefs}
As mentioned in section \ref{introduction}, different elements can
be referenced within a document
\subsection{powers series} \label{subsection}
\begin{equation} \label{eq:1}
\sum_{i=0}^{\infty} a_i x^i
\end{equation}
The equation \ref{eq:1} is atypical power series.
更多参考:
LaTeX wiki: https://en.wikibooks.org/wiki/LaTeX
Examples:http://www.electronics.oulu.fi/latex/examples/
15. 在Microsoft Word中粘贴LaTeX公式的方法
参考:Type math formulas in Microsoft Word the LaTeX way?
先用LaTeX生成MathML,然后以无格式的方式粘贴到word中(Ctrl+Alt+V); 或者粘贴到文本编辑器中,再粘贴回来(这样保证没有格式,是个纯文本)。
下面附一个可以转化公式的工具:
<!DOCTYPE html><html><head> <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> <title>tex texample</title> <script src="http://apps.bdimg.com/libs/jquery/1.6.4/jquery.min.js"></script> <script type="text/x-mathjax-config"> MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}, MathML: { useMathMLspacing: true }});</script> <script> function SelectText(element) { var doc = document , text = doc.getElementById(element) , range, selection ; if (doc.body.createTextRange) { range = document.body.createTextRange(); range.moveToElementText(text); range.select(); } else if (window.getSelection) { selection = window.getSelection(); range = document.createRange(); range.selectNodeContents(text); selection.removeAllRanges(); selection.addRange(range); } }$(document).ready(function(){ $("#latexContent").val("$$ $$");$('#latexContent').bind('input propertychange', function() { $("#myoutput").text($("#latexContent").val()); // MathJax.Hub.Queue(["TypeseTextt",MathJax.Hub,"myoutput"]); MathJax.Hub.Typeset("myoutput")});$("#btnShowMathML").click(function(){var con = $(".MJX_Assistive_MathML").html();$("#myMathml").text(con);SelectText("myMathml");}); $("#btnClear").click(function(){$("#latexContent").val("$$ $$"); $("#myoutput").html("<p style='color: grey; font-style: italic;'> The LaTeX will display here ! </p>");});}); </script></head><body><center> <p> Enter LaTeX here! </p> <textarea id="latexContent" rows="5" cols="100"> </textarea> <button id="btnClear" type="button">clear</button> <button id="btnShowMathML" type="button">Show The MathML</button> </br></br> <span id="myoutput"> <p style="color: grey; font-style: italic;"> The LaTeX will display here ! </p> </span> </br> <span id="myMathml"> </span> </center></body></html>
16. word中插入Latex的一些技巧:
快速输入公式的快捷键: Alt+=
一些参考:https://en.wikibooks.org/wiki/LaTeX/Mathematics
http://www.unicode.org/notes/tn28/UTN28-PlainTextMath-v3.pdf
Linear format equations and Math AutoCorrect in Word
- 【Matlab】关于Matlab的一些代码片段
- matlab新学的一些代码
- 关于matlab的一些链接
- 关于MATLAB的一些基础知识
- 关于MATLAB统计区域的一些函数
- 关于matlab的一些基础运用
- 关于Matlab编程的一些小总结
- HOG Matlab代码 3——关于 HOG 代码 的一些解释 1&2
- 关于soft matting的MATLAB代码
- 关于matlab几种标准化的代码
- 关于精灵进程的一些思考和代码片段
- Matlab的一些术语
- matlab的一些命令
- Matlab的一些命令
- matlab 实用程序片段
- MATLAB绘图脚本片段
- 一些有用的代码片段
- 傅里叶变换的Matlab代码
- 第26课时,实践3,月份天数
- Smarty模板引擎的安装以及目录解释
- 25. PHP 常量
- Java HashMap 分析之一:基本结构
- hdoj 2544 最短路
- 【Matlab】关于Matlab的一些代码片段
- 第二章第十三题
- 推荐几款数据恢复相关软件
- Machine Learning - XVII. Large Scale Machine Learning大规模机器学习 (Week 10)
- 自己的弱点——辩证思维
- c语言中一些注意点
- 2.Android四大组件之一Activity
- 微信公众平台开发者原理图解
- 如何应对桀骜不驯的优秀应届生?