如何在matlab中为矩阵图提供不同的linespecs
how to give different linespecs for a plot of matrix in matlab
我有矩阵,我想用不同的 linespec 绘制它的每一行:
linespec = {'b.', 'r-', 'g--o','+','x','*','o','.'};
h=plot(myMatrix');
[row,col]=size(myMatrix); //row can be max. 8
for i=1:row
set(h(i),'LineStyle','-','Marker',linespec{i});
end
上面的代码,我得到错误;
Error using set
Bad property value found.
Object Name: line
Property Name: 'Marker'
谁能告诉我完成它的正确方法?
提前致谢。
作为解决方法,您可以在绘制每一行时更改循环中的标记类型,因为您可以向 plot
提供第三个参数,它指定线条样式、标记符号和颜色:
clc
clear
M = rand(8);
linespec = {'b.', 'r-', 'g--o','+','x','*','o','.'};
[row,col]=size(M);
hold all
for i=1:row
h(i) =plot(M(i,:),linespec{i});
end
输出:
至于错误背后的原因,MathWorks 的 this 页面解释说自 R2010a 以来:
You can not set the LineStyle and Marker properties simultaneously.
You have to call the SET function twice [...]
所以这样的事情会起作用:
clc
clear
M = rand(4);
linestyles = {'-', '-.', '--',':'};
markers = {'.','>','o','+'};
colors = {'b','r','g','k'};
h = plot(M)
for i = 1:size(M,1)
set(h(i), 'LineStyle', linestyles{i})
set(h(i), 'Marker', markers{i})
set(h(i), 'Color', colors{i})
end
我有矩阵,我想用不同的 linespec 绘制它的每一行:
linespec = {'b.', 'r-', 'g--o','+','x','*','o','.'};
h=plot(myMatrix');
[row,col]=size(myMatrix); //row can be max. 8
for i=1:row
set(h(i),'LineStyle','-','Marker',linespec{i});
end
上面的代码,我得到错误;
Error using set
Bad property value found.
Object Name: line
Property Name: 'Marker'
谁能告诉我完成它的正确方法? 提前致谢。
作为解决方法,您可以在绘制每一行时更改循环中的标记类型,因为您可以向 plot
提供第三个参数,它指定线条样式、标记符号和颜色:
clc
clear
M = rand(8);
linespec = {'b.', 'r-', 'g--o','+','x','*','o','.'};
[row,col]=size(M);
hold all
for i=1:row
h(i) =plot(M(i,:),linespec{i});
end
输出:
至于错误背后的原因,MathWorks 的 this 页面解释说自 R2010a 以来:
You can not set the LineStyle and Marker properties simultaneously. You have to call the SET function twice [...]
所以这样的事情会起作用:
clc
clear
M = rand(4);
linestyles = {'-', '-.', '--',':'};
markers = {'.','>','o','+'};
colors = {'b','r','g','k'};
h = plot(M)
for i = 1:size(M,1)
set(h(i), 'LineStyle', linestyles{i})
set(h(i), 'Marker', markers{i})
set(h(i), 'Color', colors{i})
end