Имя файла, о котором идет речь, - это файл MAT, содержащий элементы в форме «a - bi», где «i» обозначает мнимое число.Задача состоит в том, чтобы разделить действительную (a) и мнимую (b) части этих элементов и поместить их в два массива.После этого будет создан текстовый файл с тем же именем, что и файл MAT, для хранения данных вновь созданных массивов.
Код:
function separate(filename)
realArray = real(filename)
imagArray = imag(filename)
fileIDname = strcat(filename, '.txt')
fileID = fopen(fileIDname, 'w')
% more code here - omitted for readability
end
Я пытаюсь запустить вышеуказанноекод через командное окно.Вот что я пробовал до сих пор:
%attempt 1
separate testFileName
Это не работает, поскольку выходные данные не содержат правильные данные из файла MAT.Вместо этого realArray и imagArray содержат данные, основанные на символах ascii «testFileName».
например, первый элемент realArray соответствует целочисленному значению 't', второй - 'e', третий - 's' и т. Д. Таким образом, массив содержит только количество элементов в качестве количества символовв имени файла (в данном случае 12) вместо того, что на самом деле находится в файле MAT.
%attempt 2
load testFileName
separate(testFileName)
Поэтому я попытался сначала загрузить переменную MAT testFileName MAT.Однако это приводит к ошибке:
Complex values cannot be converted to chars
Error in strcat (line 87)
s(1:pos) = str;
Error in separate (line xx)
fileIDname = strcat(filename, '.txt')
По сути, вы не можете объединить элементы массива в '.txt' (конечно).Но я пытаюсь объединить имя файла MAT в '.txt'.
Поэтому я либо получаю неправильный вывод, либо мне удается успешно отделить элементы, но не удается сохранить впосле этого текстовый файл с тем же именем (важная особенность, позволяющая использовать эту функцию для нескольких файлов MAT).
Есть идеи?