Hi,
I work with OpenSeesPy recently.I would like to link MATLAB to OpenSeespy. There are 5 parameters in Openseespy that they should read from Matlab and then the output from OpenSeespy import to Matlab. Could you help me how to call from Matlab and OpenSeespy? If you have any sample program that you do in this issue please let me know.
p1,p2,p3,p4,p5 (Matlab)------->OpenseesPy
output(OpenSeesPy)--------->Matlab
Thanks,
Openseespy link to Matlab
Moderators: silvia, selimgunay, Moderators
-
- Posts: 4
- Joined: Thu Oct 01, 2015 6:27 am
- Location: university of sistan and bluchestan
Re: Openseespy link to Matlab
Hello,
You can save the matlab variables in a *.mat file, say it's a matrix (or array) myvar = (p1, p2, p3, p4, p5) and saved in 'myvar.mat'. From python you can then load this mat file
from scipy.io import loadmat, savemat
var = loadmat('myvar.mat')
# 'var' will be a 'dict' {}, so extract your matrix
myvar=var['myvar']
then you can extract p1,p2,... by python indexing and run opensees using those.
and after analysis you can save them back in a mat file. say 'out' is your output variable,
D={} #define a 'dict'
D['out']=out
savemat('D',out)
output variable will be saved in 'D.mat' file. Now you can use that in matlab. you can perform this task just by switching between matlab and python windows.
or otherwise you can call matlab engine from python. see 'Matlab API for Python' in Matlab help. But the easiest way would be the previous one.
You can save the matlab variables in a *.mat file, say it's a matrix (or array) myvar = (p1, p2, p3, p4, p5) and saved in 'myvar.mat'. From python you can then load this mat file
from scipy.io import loadmat, savemat
var = loadmat('myvar.mat')
# 'var' will be a 'dict' {}, so extract your matrix
myvar=var['myvar']
then you can extract p1,p2,... by python indexing and run opensees using those.
and after analysis you can save them back in a mat file. say 'out' is your output variable,
D={} #define a 'dict'
D['out']=out
savemat('D',out)
output variable will be saved in 'D.mat' file. Now you can use that in matlab. you can perform this task just by switching between matlab and python windows.
or otherwise you can call matlab engine from python. see 'Matlab API for Python' in Matlab help. But the easiest way would be the previous one.
-
- Posts: 4
- Joined: Thu Oct 01, 2015 6:27 am
- Location: university of sistan and bluchestan
Re: Openseespy link to Matlab
gswarup wrote:
> Hello,
>
> You can save the matlab variables in a *.mat file, say it's a matrix (or
> array) myvar = (p1, p2, p3, p4, p5) and saved in 'myvar.mat'. From python
> you can then load this mat file
>
> from scipy.io import loadmat, savemat
> var = loadmat('myvar.mat')
> # 'var' will be a 'dict' {}, so extract your matrix
> myvar=var['myvar']
>
> then you can extract p1,p2,... by python indexing and run opensees using
> those.
>
> and after analysis you can save them back in a mat file. say 'out' is your
> output variable,
>
> D={} #define a 'dict'
> D['out']=out
>
> savemat('D',out)
>
> output variable will be saved in 'D.mat' file. Now you can use that in
> matlab. you can perform this task just by switching between matlab and
> python windows.
>
> or otherwise you can call matlab engine from python. see 'Matlab API for
> Python' in Matlab help. But the easiest way would be the previous one.
Thank you so much. I installed OpenseesPy via Anaconda. I wrote in Spyder:
import sys
import numpy as np
print("hello")
also wrote in Matlab :
system('python test.py')
when I run Matlab, I have an error:
Traceback (most recent call last):
File "test.py", line 2, in <module>
import numpy as np
ModuleNotFoundError: No module named 'numpy'
I don't know why this error was appeared.
> Hello,
>
> You can save the matlab variables in a *.mat file, say it's a matrix (or
> array) myvar = (p1, p2, p3, p4, p5) and saved in 'myvar.mat'. From python
> you can then load this mat file
>
> from scipy.io import loadmat, savemat
> var = loadmat('myvar.mat')
> # 'var' will be a 'dict' {}, so extract your matrix
> myvar=var['myvar']
>
> then you can extract p1,p2,... by python indexing and run opensees using
> those.
>
> and after analysis you can save them back in a mat file. say 'out' is your
> output variable,
>
> D={} #define a 'dict'
> D['out']=out
>
> savemat('D',out)
>
> output variable will be saved in 'D.mat' file. Now you can use that in
> matlab. you can perform this task just by switching between matlab and
> python windows.
>
> or otherwise you can call matlab engine from python. see 'Matlab API for
> Python' in Matlab help. But the easiest way would be the previous one.
Thank you so much. I installed OpenseesPy via Anaconda. I wrote in Spyder:
import sys
import numpy as np
print("hello")
also wrote in Matlab :
system('python test.py')
when I run Matlab, I have an error:
Traceback (most recent call last):
File "test.py", line 2, in <module>
import numpy as np
ModuleNotFoundError: No module named 'numpy'
I don't know why this error was appeared.
-
- Posts: 11
- Joined: Sat Jul 28, 2018 12:05 pm
Re: Openseespy link to Matlab
Hi
if you want to use directly OpenSees framework in Matlab environment you can use OpenSees.NET
https://www.youtube.com/watch?v=rEDNtXR9RwY
http://opensees.net/
http://opensees.net/blog
if you want to use directly OpenSees framework in Matlab environment you can use OpenSees.NET
https://www.youtube.com/watch?v=rEDNtXR9RwY
http://opensees.net/
http://opensees.net/blog
-
- Posts: 4
- Joined: Thu Oct 01, 2015 6:27 am
- Location: university of sistan and bluchestan
Re: Openseespy link to Matlab
imansalehi wrote:
> Hi
> if you want to use directly OpenSees framework in Matlab environment you
> can use OpenSees.NET
> https://www.youtube.com/watch?v=rEDNtXR9RwY
>
>
> http://opensees.net/
> http://opensees.net/blog
Hi Iman,
Thank you so much for good point.
> Hi
> if you want to use directly OpenSees framework in Matlab environment you
> can use OpenSees.NET
> https://www.youtube.com/watch?v=rEDNtXR9RwY
>
>
> http://opensees.net/
> http://opensees.net/blog
Hi Iman,
Thank you so much for good point.