2016-07-21 4 views
0

Ich übersetze MATLAB-Code in Python und muss auf Datenstrukturen zugreifen. Mit scipy, ich brauche eine Benutzereingabe-String in einen Dateinamen verketten:Zugriff auf MATLAB-Daten in Python mit einem verketteten Dateinamen

cb_data = scipy.io.loadmat('./cb_data/' + subj_id + '_cb_AAAD_V2.mat' , 'rb')

wo subj_id eine Variable von einer Benutzereingabe ist. Ich habe auch versucht, direkt die Benutzereingabe eingegeben, aber es gab den gleichen Fehler

File "/Users/pproctor/anaconda/PythonScripts_conda/get_num_trials.py",line 36, in 
get_num_trials cb_data = scipy.io.loadmat('./cb_data/' + subj_id + '_cb_AAAD_V2.mat' , 'rb') 

File "/Users/pproctor/anaconda/lib/python2.7/site-packages/scipy 
/io/matlab/mio.py", line 137, in loadmat mdict.update(matfile_dict) 

AttributeError: 'str' object has no attribute 'update' 

Antwort

1

Das zweite Argument, mdict, von loadmat nicht der Dateizugriffsmodus ist. Es ist optional, aber wenn es gegeben ist, muss es ein Wörterbuch sein. Die geladenen Arrays werden zu diesem Dictionary hinzugefügt, wobei die Variablennamen als Schlüssel und die tatsächlichen Arrays als Werte verwendet werden.

+0

Dies ist die richtige Lösung, danke – pproctor