Проблема с выводом двух массивов в Matlab
Нужно чтобы 2 массива выводились в таком виде:
string1 double1
string2 double2
и так далее. При выполнении кода получается следующее:
ID: NaN
Eccentricity: NaN
Orbital Inclination(rad): NaN
SQRT(A) (m 1/2): NaN
Argument of Perigee(rad) NaN
Af0(s): NaN
week: 1.000000
0 0.011064
319488 0.985429
-7.943188009e-09 5153.630859
0.8422198678 0.890038
-1.977771616 0.000566
-1.091393642e-11 127.000000
т.е. сначала идут все переменные из массива строк, а затем все переменные из массива double. Код:
%% Show results
clear;
load ImportResults.mat;
fID3 = fopen('out.txt', 'w');
fprintf(fID3, ' %s %f\r\n', [FieldNames;Variables]);
fprintf(fID3, '---------------------------------');
В чем ошибка?
Ответы (1 шт):
Функция fprintf принимает на вход элементы массива. В matlab массив может быть только однотипным типом данных. В вашем же коде массив не является однотипным, он - string и double. Но вы явно передаете элементы в один массив и matlab осуществляет каст к одному типу, преобразуя Variables к string.
Если хотите иметь массив с разными типами данных, создайте тип cell. Пример:
Cell_F = {"wow" "Ahah" "Nice"; 1.3 1.4 6.9}
fprintf("%s %f\r\n", Cell_F{:})
Cell_F{:} создает список массивов, разделенных запятыми, которые содержат данные каждой ячейки Cell_F.