Use Matlab Function Block to plot into figure created by Matlab Script
10 ビュー (過去 30 日間)
古いコメントを表示
Hello,
my plan is to create a figure with a Matlab script and then plot the results from my Simlink Simulation in this specific plot, using a Matlab function block.
Here is the script where the figure to plot the results is created:
ax1 = axes;
map_scales = imread("map_scaled.pgm");
imshow(map_scales, 'Parent',ax1)
hold on
My original idea was to use the ax1 in the matlab function block to plot the results in this figure. But this does not seem to work:
Here is a picture of the maltabl function block and the code inside it:
function path_plotting(x_pos, x_pos_prev, y_pos, y_pos_prev)
x_coodinates = [x_pos_prev, x_pos];
y_coodinates = [y_pos_prev, y_pos];
plot(x_coodinates, y_coodinates, 'LineWidth', 2, 'Color', 'b', 'Parent', ax1)
end
Does anyone have an idea how to solve this?
0 件のコメント
回答 (2 件)
Simon Chan
2022 年 11 月 6 日
Try this in the function path_plotting
function path_plotting(x_pos, x_pos_prev, y_pos, y_pos_prev, ax1)
x_coodinates = [x_pos_prev, x_pos];
y_coodinates = [y_pos_prev, y_pos];
plot(ax1,x_coodinates, y_coodinates, 'LineWidth', 2, 'Color', 'b')
end
Paul
2022 年 11 月 13 日
編集済み: Paul
2022 年 11 月 13 日
Hi Jannis,
I got this model to work
The code in the Matlab Function block is
function y = fcn(u,t)
persistent ax1
if isempty(ax1)
ax1 = gca;
set(ax1,'NextPlot','add');
end
plot(ax1,t,u,'r.')
y = u;
end
In your use case, maybe you can replace the ax1 = gca; with either your code, or a function that runs your code to create the image and return the axis handle. Anyway, I think that whatever you're trying to do is feasible.
参考
カテゴリ
Help Center および File Exchange で General Applications についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!