最近,MATLAB启用了图表处理,使用点表示法来设置属性.
例如
set(plotLeft,'marker','o');
Run Code Online (Sandbox Code Playgroud)
现在可以
plotLeft(1).Marker = 'o';
Run Code Online (Sandbox Code Playgroud)
是否可以使用这个新的点符号一次设置多个字段.以下是一些代码示例:
clc; clear all;
x = logspace(-3,0,100)';
plot1 = sin(x);
plot2 = cos(x);
[hax,plotLeft,plotRight] = plotyy(x,[plot1 plot1],x,[plot2 plot2])
plotLeft(1).Marker = 'o';
plotLeft(2).Marker = 'x';
Run Code Online (Sandbox Code Playgroud)
我想这一点:
plotLeft(1).Marker = 'o';
plotLeft(2).Marker = 'x';
Run Code Online (Sandbox Code Playgroud)
但在一条线上.我可以通过以下方式访问标记类型:
plotLeft([1 2]).Marker
Run Code Online (Sandbox Code Playgroud)
但它不会让我设置他们认为它会如何工作:
>> plotLeft([1 2]).Marker = ['o' 'x']
Insufficient number of outputs from function on right hand side of equal sign to
satisfy overloaded assignment.
Run Code Online (Sandbox Code Playgroud)

您可以使用deal函数来实现此目的:
[plotLeft([1 2]).Marker] = deal('o', 'x');
Run Code Online (Sandbox Code Playgroud)
plotLeft([1 2]).Marker创建一个以逗号分隔的列表,这样你就不能直接分配它,但你可以使用交易来处理它,它将等同于:
[plotLeft(1).Marker, plotLeft(2).Marker] = deal('o', 'x');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
392 次 |
| 最近记录: |