Using Function to plot matrices with changing inputs

1 view (last 30 days)
I would like to send a cell into a function, and have each matrix plotted from the cell. How can I input legend based on changing inputs?
Example:
function [ ] = AVG_Plot_Function(X,Degrees,Data )
for k = 1:size(Data)
AVG{k} = mean(Data{k},1)
a{k} = polyfit(X,AVG{k},3)
b{k} = polyval(a{k},X)
plot(X,AVG{k},X,b{k})
legend(Degrees(k)...) ..> this only puts the last entry, need all the labels.
hold on
end
end

Answers (1)

Jan
Jan on 3 Mar 2016
Edited: Jan on 5 Mar 2016
axes('NextPlot', 'add'); % as "hold on"
LineHC = cell(1, numel(Data)); % [EDITED]
for k = 1:numel(Data) % Not SIZE!
AVG{k} = mean(Data{k},1)
a{k} = polyfit(X,AVG{k},3)
b{k} = polyval(a{k},X)
LineHC{k} = plot(X,AVG{k},X,b{k}); % [EDITED]
end
LineH = cat(1, LineHC{:}); % [EDITED]
legend(LineH, Degrees);
  2 Comments
Philip Hoskinson
Philip Hoskinson on 3 Mar 2016
Edited: Philip Hoskinson on 3 Mar 2016
Subscripted assignment dimension mismatch.
Error in AVG_Plot_Function (line 11) lineH(k) = plot(X,AVG_Cavity{k},X,b{k},'--k')
--> Stops after one iteration:issue plotting that data and the fit lines perhaps?
Jan
Jan on 5 Mar 2016
See [EDITED]: PLOT draws 2 lines and replies 2 handles, which could not be stored in the scalar LineH(k).

Sign in to comment.

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!