フィルターのクリア

Plot Over an Image, MATLAB Engine for C++ (Visual Studio 2017)

5 ビュー (過去 30 日間)
Vijay Kumar Polimeru
Vijay Kumar Polimeru 2019 年 4 月 29 日
コメント済み: omnia ahmed 2022 年 3 月 1 日
Dear Community Members,
I am trying to plot a graph over an image, I successfully did in MATLAB, using the following code
clc
clear all
close all
set(0,'defaultaxesfontsize', 14)
set(0,'defaultaxesfontname', 'Palatino Linotype')
ForceDisp = load('Outputs/Panel_Disp_Node_4.out');
Disp = ForceDisp(:,2);
Force = ForceDisp(:,1);
Gamma_lt = Disp/1398;
Tau_lt = Force*1000/(1398*178);
figure(1)
plot (Gamma_lt(1:end,:),Tau_lt(1:end,:))
xlabel('Shear Strain');
ylabel('Shear Stress (Mpa)');
% replace with an image of your choice
img = imread('CA2 Final.png');
% set the range of the axes
% The image will be stretched to this.
min_x = -0.040;
max_x = 0.040;
min_y = -4.0;
max_y = 4.0;
% Flip the image upside down before showing it
imagesc([min_x max_x], [min_y max_y], flipud(img));
% NOTE: if your image is RGB, you should use flipdim(img, 1) instead of flipud.
hold on
plot(Gamma_lt, Tau_lt, 'LineWidth',2,'Color',[0.850980401039124 0.325490206480026 0.0980392172932625]);
xlabel('Shear Strain')
ylabel('Shear Stress (Mpa)')
hold off
% set the y-axis back to normal.
set(gca,'ydir','normal');
Later, I am trying to plot the same using Matlab Enginer API in Visual Studio C++ (2017), But it is not working, I was unable to see the errors also. The code used in Visual C++ is as follows
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <cmath>
#include <string.h>
#include "engine.h"
int main()
{
/* open matlab engine */
Engine *m_pEngine;
m_pEngine = engOpen(NULL);
if (m_pEngine == NULL)
{
std::cout << "Error" << std::endl;
exit(1);
}
engEvalString(m_pEngine, "clc;");
engEvalString(m_pEngine, "close all;");
engEvalString(m_pEngine, "clear all;");
engEvalString(m_pEngine, "figure");
engEvalString(m_pEngine, "img = imread('CA2 Final.png')");
engEvalString(m_pEngine, "min_x = -0.040; max_x = 0.040; min_y = -4.0; max_y = 4.0");
engEvalString(m_pEngine, "imagesc([min_x max_x], [min_y max_y], flipud(img));");
system("pause");
//engEvalString(m_pEngine, "close;"); // Closes the matlab engine
return 0;
}
Could anybody help me understand where I am doing the error??

採用された回答

Vijay Kumar Polimeru
Vijay Kumar Polimeru 2019 年 4 月 30 日
Problem Solved. I forgot to change the directory in MATLAB to the c++ solution directory.
  1 件のコメント
omnia ahmed
omnia ahmed 2022 年 3 月 1 日
Can you tell me how you did it.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLighting, Transparency, and Shading についてさらに検索

製品


リリース

R2015a

Community Treasure Hunt

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

Start Hunting!

Translated by