5000个matlab常见问题锦集的雄关路(001)

5000个matlab常见问题锦集的雄关路(001)

为了方便各位小伙伴快速了解matlab编程中常遇问题,公众号特地推出matlab问题锦集系列,力争收集5000个常见matlab编程问题,每期推送10至30个不等的问题及解答方案,希望对大家的matlab学习有帮助。若无特殊说明,所推送问答均来自于MATLAB Answers、Stack Overflow、matlab中文论坛、matlab中国论坛、matlab技术论坛、小木虫、CSDN以及百度贴吧等,不再作专门的参考资料来源声明。

现在就开5000个matlab问题收集的第一步,本期推送12个问题!

1、如何修改 MATLAB 启动时的工作路径?

至少有以下三种方法:

1.MATLAB 主页->预设->常规,右侧可以设置启动时的工作路径。

2.建立 startup.m 文件,在文件中写入命令:

代码语言:javascript代码运行次数:0运行复制cd C:\matlab_startup并将文件放到 MATLAB 的搜索路径(path)下,一般会选择MATLAB安装路径\toolbox\local

3.这个方法仅对 Windows 操作系统,且通过双击快捷方式启动 MATLAB有效。右键快捷方式,选择属性,并在 Start in 中设置启动时的工作路径。

需要注意的是,上述三种方法互有冲突,因此仅建议通过一种方式进行设置。

2、如何在新版本的 MATLAB 中绘制多边形?

在旧版本中,一般用 impoly 函数绘制多边形,在新版本(R2018b之后)中可以用 drawpolygon

代码语言:javascript代码运行次数:0运行复制roi = drawpolygon('Color','r');3、如何改变坐标轴刻度线与文字的颜色?

代码语言:javascript代码运行次数:0运行复制plot(1:10, rand(1,10),'ko-');

ax = gca;

set(ax,'XColor','b');

ax.XTickLabel = arrayfun(@(ii) ['\color{red}', ax.XTickLabel{ii}], [1:1:length(ax.XTickLabel)], 'UniformOutput',false);4、如何用plot在绘制图形的同时添加小三角、矩形、菱形等标志?

代码语言:javascript代码运行次数:0运行复制标记符 点形

+ 加号

o 圆圈

* 星号

. 实心点

x 叉号

s 正方形

d 钻石形

^ 上三角形

v 下三角形

> 右三角形

< 左三角形

p 五角星形

h 六角星形5、MATLAB 中如何控制坐标轴刻度线标签、范围和坐标轴刻度线位置?

可以使用 xlim、ylim 和 zlim 函数控制轴范围。对这些函数的传参数形式为:[最小值,最大值]。例如:

代码语言:javascript代码运行次数:0运行复制x = linspace(0,2*pi);

y = sin(x);

plot(x,y);

xlim([0 2*pi])

ylim([-1.5 1.5])可以使用 xticks、yticks 和 zticks 函数控制刻度线沿轴的位置。将刻度线位置指定为单调递增的矢量。这些值不需要均匀分布。例如:

代码语言:javascript代码运行次数:0运行复制xticks([0 pi 2*pi])

yticks([-1 0 1])若要控制与每个刻度线关联的标签,请使用 xticklabels、yticklabels 和 zticklabels 函数。使用字符向量的元胞数组指定标签。如果不希望显示刻度标签,请指定空元胞数组{}。若要在标签中包含特殊字符或希腊字母,请使用 Tex 标记,如 \pi。例如:

代码语言:javascript代码运行次数:0运行复制xticklabels({'0','\pi','2\pi'})

yticklabels({'min','y = 0','max'})6、请问一下,如何找到一个数组中最大值所处的位置呢?

代码语言:javascript代码运行次数:0运行复制A=magic(3);

value=max(A(:));

[row col]=find(value==A);7、在MATLAB中,如何计算两个矢量之间的夹角?

可以使用 cross 函数计算两个矢量的外积(即叉乘或向量积),使用 dot 函数计算内积(即点乘),然后使用 atan2d 函数计算正切值。例如:

代码语言:javascript代码运行次数:0运行复制u = [1 2 0];

v = [1 0 0];

ThetaInDegrees = atan2d(norm(cross(u,v)),dot(u,v));还可以将使用夹角的余弦值进行计算,这在夹角较小时计算可能有误差。例如:

代码语言:javascript代码运行次数:0运行复制u = [1 2 0];

v = [1 0 0];

CosTheta = dot(u,v)/(norm(u)*norm(v));

ThetaInDegrees = acosd(CosTheta);8、MATLAB 为什么报错“未定义函数或变量” ?

MATLAB 不将指定的字符串识别为 MATLAB 路径上的函数的名称或变量。可能的原因包括:

1)键入函数或变量名时的拼写错误(例如,当您要键入小写字母 l 时键入了数字1)。同时,MATLAB 的新版本提供“是不是想输入:”来解决这些拼写错误。

2)函数或变量名的错误大小写。同时,MATLAB 的新版本提供“是不是想输入:”来解决这些拼写错误。

3)改变了路径,使得被调用的函数不在 MATLAB 路径下。

4)使用未获得许可的功能或未安装的工具箱。

5)调用对象的方法,而没有指明对象名,仅给出了方法名。

6)调用在其他操作系统平台编译的 MEX 函数。

解决方法:

验证未定义的函数或变量是否可见(位于路径或当前工作区中),以及它是否在执行此代码行之前已经定义。

如果确定变量或函数存在,请验证函数或变量名的大小写。如果未定义的标识符是一个函数,则 which函数可以帮助您验证它对发生错误的函数是否可见。如果您的 MATLAB 搜索路径有问题,请运行以下 MATLAB 命令, 然后重新启动 MATLAB。

9、MATLAB 中,如何在一组子图上插入标题?

在 MATLAB R2018b 中,可以通过 sgtitle 函数实现。参考:

https://www.mathworks.cn/help/releases/R2018b/matlab/ref/sgtitle.html

对于早期版本,请查看 File Exchange 上的函数:

https://www.mathworks.cn/matlabcentral/fileexchange/3218-mtit-a-pedestrian-major-title-creator

10、MATLAB 如何绘制具有给定半径和中心坐标的圆?

以下是用来实现该功能的 MATLAB 函数:

代码语言:javascript代码运行次数:0运行复制function h = circle(x,y,r)

hold on

th = 0:pi/50:2*pi;

xunit = r * cos(th) + x;

yunit = r * sin(th) + y;

h = plot(xunit, yunit);

hold off另一种方法是使用 rectangle 函数:

代码语言:javascript代码运行次数:0运行复制function h = circle2(x,y,r)

d = r*2;

px = x-r;

py = y-r;

h = rectangle('Position',[px py d d],'Curvature',[1,1]);

daspect([1,1,1])如果使用 MATLAB R2012a 或者之后版本的 Image Processing Toolbox,可以用 viscircles 函数:

代码语言:javascript代码运行次数:0运行复制viscircles(centers,radii)11、如何从 MATLAB 图形中提取数据?

如果图形存储在文件中,如 example.fig,则使用 openfig 函数打开图形文件。将 Figure 对象分配给变量fig。

代码语言:javascript代码运行次数:0运行复制fig = openfig('example.fig');如果图片已经打开,使用 gcf 函数获取 Figure 对象的属性并分配给 fig。

代码语言:javascript代码运行次数:0运行复制fig = gcf;可以使用 Children 属性, 也可以使用 findobj 函数访问绘制的图形对象的数据。

通过 Children 属性访问绘制的图形对象。Axes 对象是 Figure 的子对象。数据等通常是 Axes 的子对象。

代码语言:javascript代码运行次数:0运行复制axObjs = fig.Children

dataObjs = axObjs.Children出现在命令窗口中的 dataObjs 数组包含数据信息。不同的图形对象以不同的方式存储数据。例如,Line对象将数据存储在 XData、YData 和 ZData 中。如果 dataObjs 中的第一个元素是 Line 对象, 则使用此代码访问其数据。

代码语言:javascript代码运行次数:0运行复制x = dataObjs(1).XData

y = dataObjs(1).YData

z = dataObjs(1).ZData12、在MATLAB的plot中,如何添加两行的标题和坐标注释?

通过 cell(元胞数组)来添加多行文本。请参考:

代码语言:javascript代码运行次数:0运行复制plot(1:10)

title({'First line';'Second line'})

xlabel({'First line';'Second line'})以上就是今天的全部内容,欢迎各位小伙伴将自己平时matlab编程遇到的问题以及解决方法推荐给小编,或者在推文下方留言,让大家一起学习,共同进步!

🎯 相关推荐

led灯珠颜色怎么改变(led灯珠变色是怎么控制的)
最新公告
(0755) 3656 3788

最新公告

📅 06-29 👀 4779
你不知道的火的13件事 永不熄灭的火焰!
(0755) 3656 3788

你不知道的火的13件事 永不熄灭的火焰!

📅 06-29 👀 1727