Вопрос по matlab, file-io – Как использовать «csvread», когда содержимое файла имеет разные форматы?

3

У меня есть файл .csv, и формат показан ниже:

mapping.csv

5188.40811,TMobileML
5131.40903,TMobileGregsapt
5119.40791,TMobileJonsapartment
5123.40762,TMobileRedhat

я хочу сохранить его в массиве 4 на 2, когда у меня есть значение, такое как5131.40903(это "строка", а не "int"), я хочу найти отношение отображения, котороеTMobileGregsapt, Но я сталкиваюсь с двумя проблемами, во-первых, я не могу использоватьcsvread('mapping.csv'), у него будет какая-то ошибка: (Я думаю, что проблема может быть5131.40903 будетint когда я использую CSVread, ноTMobileGregsapt это строка ...)

??? Error using ==> dlmread at 145
Mismatch between file and format string.
Trouble reading number from file (row 1, field 2) ==> TMobi

Error in ==> csvread at 52
    m=dlmread(filename, ',', r, c);

хотя я используюdlmread('cell4.csv', ','), у него все еще есть какая-то ошибка:

??? Error using ==> dlmread at 145
Mismatch between file and format string.
Trouble reading number from file (row 1, field 2) ==> TMobi

Вторая проблема состоит в том, как я могу найти отношение отображения простым способом, наивный метод использует forloop, чтобы найти положение массива.

Спасибо за вашу помощь:)

Ваш Ответ

2   ответа
7

Error: User Rate Limit Exceeded

out=textread('tmp.csv', '%s', 'whitespace',',');
nums =  out(1:2:end);
strs =  out(2:2:end);
% find index of 'TMobileGregsapt'
ind = find(strcmp('TMobileGregsapt',strs));
nums(ind)
Error: User Rate Limit Exceeded LoveTW
Error: User Rate Limit ExceedednumsError: User Rate Limit ExceededstrsError: User Rate Limit Exceededstr2num(nums)... LoveTW
2

Error: User Rate Limit ExceededError: User Rate Limit Exceeded

c = csv2cell( 'yourFile.csv', 'fromfile'); 

c(1, :)Error: User Rate Limit Exceededc(2:end, k)Error: User Rate Limit Exceededfor k = 1:size(c, 2)

Похожие вопросы