Ошибка говорит о том, что ваш идентификатор файла может быть недействительным. Вы проверяли?
Вы получаете идентификатор файла (fid
в вашей функции som_read_data
), вызывая fid=fopen(fileName)
, где fileName
- это имя вашего файла, если он находится в текущем каталоге, или имя файла, включая имя пути, в противном случае ,
Для отладки вы можете позвонить [fid,message] = fopen(fileName)
и проверить, пусто ли message
. Если это не так, при открытии файла произошла ошибка, и, следовательно, fid
не является допустимым идентификатором файла.
РЕДАКТИРОВАТЬ Возможно, вы захотите взглянуть на то, что говорит message
. Держу пари, что это что-то вроде «файл не найден», либо потому, что файл не указан по пути, либо потому что вы пропустили расширение.
EDIT2 Просмотрите som_read_data, чтобы найти, какая функция возвращает fid
, прежде чем она будет использована в строке 169. Если в строке написано fid = fopen(m)
, то вы должны передать имя файла в som_read_data
, т.е. ..е звоните som_read_data(B)
.