2015-04-30 9 views
-1

Вот мой файл training_new1.csv (показаны только две строки)Невозможно получить транспонирование матрицы в Matlab

PIDN,TMFI,Depth,Ca,P,pH,SOC,Sand XNhoFZW5,1.6877,0.1907,0.0568,1,-0.2957,-0.0413,-1.1294 9XNspFTd,0.2702,0.2686,0.267,0,0.271,0.2723,0.2699

У меня есть следующие коды MATLAB:

code1:

x = dataset('file',['training_new1.csv'],'Delimiter',','); 
x = single(x(:,2:end-5)); 

x' %print x transpose matrix 

Код2:

x = dataset('file',['training_new1.csv'],'Delimiter',','); 
x = x(:,2:end-5); 

x' %print x transpose matrix -- this is NOT working 

Моя проблема: Code1 работает нормально и Кодекса2 показывает следующие ошибки:

Error using dataset.dataset>throwUndefinedError 
Too many output arguments. 

Error in ' (line 472) 
     function a = ctranspose(varargin), a = throwUndefinedError; end 

Error in train (line 14) 
x' %print x transpose matrix 

Я не хочу использовать single() функцию для изменения значений в x к точности одной точке, потому что я уже преобразовали их в мой файл ввода training_new1.csv. Что я могу сделать, чтобы узнать матрицу x' в Code2?

ответ

2

Вместо печати x 'я попытался напечатать только x для обоих ваших кодов следующим образом.

выход code1:

1.6877 0.1907 
0.2702 0.2686 

code2 выход:

TMFI  Depth 
1.6877 0.1907 
0.2702 0.2686 

Надежда теперь вы можете понять проблему. У вас есть тексты в матрице, поэтому вы не можете найти транспонирование.

Затем я отредактировал код2 следующим образом.

x = dataset('file',['training_new1.csv'],'Delimiter',','); 
x = dataset2cell(x(:,2:end-5)); 
x = cell2mat(x(2:end,:)); 
x' %print x transpose matrix 
+0

Он не работает, даже если я удаляю заголовок из файла. – Sumit