wie ein Matlab-Vektor in einer Zelle unter Verwendung von Array scipy des savemat erstellen

stimmen
0

In Python versuche ich SciPy die savemat Methode zum Erstellen einer Zellenanordnung, die enthält einen Vektor von Schwimmern zu verwenden. Ich habe versucht, die folgenden: (haben auch versucht, Listen und andere Arten von np-Arrays)

vector = np.array([2.3,66.7,22.0])
cell = np.array(vector,dtype=np.object)
io.savemat({'result':cell})

Aber das gibt mir die folgende Ausgabe in MATLAB

Ergebnis =

1 × 3-Zellen-Array

{[2.3000]}    {[66.7000]}    {[22]}

aber was ich brauche, ist die folgende {[2.3,66.7,22]}, nichts, was ich versucht habe bisher funktioniert. Jede Hilfe wäre sehr dankbar

Veröffentlicht am 09/10/2019 um 18:52
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
0
In [25]: from scipy import io                                                   
In [26]: cell = np.array(np.array([1,2,3]), object)                             
In [27]: cell                                                                   
Out[27]: array([1, 2, 3], dtype=object)
In [28]: io.savemat('test.mat', {'result':cell})                                
In [29]: io.loadmat('test.mat')                                                 
Out[29]: 
{'__header__': b'MATLAB 5.0 MAT-file Platform: posix, Created on: Wed Oct  9 09:16:37 2019',
 '__version__': '1.0',
 '__globals__': [],
 'result': array([[array([[1]]), array([[2]]), array([[3]])]], dtype=object)}

Also sowohl in den ursprünglichen cellund der Last, haben wir eine 3 - Element - Array, wobei jedes Element eine Zahl oder ein 2D - Array ist.

Lassen Sie uns ein einzelnes Element Array machen, mit dem Element ist ein Array selbst:

In [30]: cell = np.empty((1,1),object)                                          
In [31]: cell                                                                   
Out[31]: array([[None]], dtype=object)
In [32]: cell[0,0] = np.array([1,2,3])                                          
In [33]: cell                                                                   
Out[33]: array([[array([1, 2, 3])]], dtype=object)
In [34]: io.savemat('test.mat', {'result':cell})                                
In [35]: io.loadmat('test.mat')                                                 
Out[35]: 
{'__header__': b'MATLAB 5.0 MAT-file Platform: posix, Created on: Wed Oct  9 09:18:55 2019',
 '__version__': '1.0',
 '__globals__': [],
 'result': array([[array([[1, 2, 3]])]], dtype=object)}
Beantwortet am 09/10/2019 um 19:17
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more