在我的代码中使用inputdlg时如何放大数字?

时间:2018-04-17 17:13:15

标签: matlab dialog modal-dialog

首先,当我使用 inputdlg 时,Matlab不允许我放大我的身材。

其次,当我使用命令输入数字并尝试使用 num2cell 将其转换为单元格时,我收到此错误:'使用cellstr输入的错误必须是字符串'

这是我正在使用的一段代码:

No = cell2mat(inputdlg('Type in number: '));

(这是我无法放大的地方!)

prompt = num2cell(1:2*No);
title = 'Numbers';
answer = inputdlg(prompt,title);

(这是我收到错误的地方!)

您有什么想法可以解决这些问题吗?我在Mac系统上使用Matlab。

1 个答案:

答案 0 :(得分:0)

要在图中以编程方式zoom inzoom out,您可以使用zoom功能。

一个例子可能是:

% Create a Figure
my_fig=figure
% Plot something in the figure
plot(randi(10,10,1))
grid minor

% Get the zoom factor
zoom_factor=str2double(inputdlg('Type in number: '))

% Zoom the axes of the selected factor
zoom(my_fig,zoom_factor)

这将根据zoom in

中定义的值inputdlg绘制

当您在图形工具栏中选择缩放图标并单击图形的中心时,缩放将是动作将以轴的中心为中心。

此外,您只需致电

即可
% Enable zooming
zoom(my_fig,'on')

启用缩放,这与单击图形工具栏上的缩放图标具有相同的效果。

如果您想缩放图表的特定区域,可以更改xlimylim的值。

关于示例中创建的绘图,您可以使用inputdlg获取新限制,然后更新绘图

在这种情况下,您必须在inputdlg中输入由空格分隔的4个值(例如2.5 5.5 5.5 7.5

% Get the axes handle
ax=gca;
% Store the original X anf Y Limit
orig_xlim=ax.XLim;
orig_ylim=ax.YLim;

zoom_factor=inputdlg('Type in new lim: ')
new_lim=str2num(char(zoom_factor))

ax.XLim=[new_lim(1) new_lim(2)];
ax.YLim=[new_lim(3) new_lim(4)];

存储了限制的原始值后,您可以缩小设置值。