最近,MATLAB启用了绘图处理,使用点表示法来设置属性。
e.g。
set(plotLeft,'marker','o');
现在可以
plotLeft(1).Marker = 'o';
是否可以使用此新的点符号一次设置多个字段。以下是一些代码示例:
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';
我想设置这一点:
plotLeft(1).Marker = 'o';
plotLeft(2).Marker = 'x';
但是在一条线上。我可以通过以下方式访问标记类型:
plotLeft([1 2]).Marker
但是我不会让他们知道我认为它会起作用:
>> plotLeft([1 2]).Marker = ['o' 'x']
Insufficient number of outputs from function on right hand side of equal sign to
satisfy overloaded assignment.
答案 0 :(得分:6)
您可以使用deal
功能来实现此目的:
[plotLeft([1 2]).Marker] = deal('o', 'x');
plotLeft([1 2]).Marker
创建一个comma-separated list,因此您无法直接分配,但您可以使用交易来处理它,它将等同于:
[plotLeft(1).Marker, plotLeft(2).Marker] = deal('o', 'x');