3

.csv ファイルがあり、その形式を以下に示します。

マッピング.csv

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

4 x 2 の配列に格納したいのですが、5131.40903(これは 'int' ではなく 'string' です) のような値がある場合、 であるマッピング関係を見つけたいですTMobileGregsapt。しかし、私は2つの問題に遭遇しました.1つ目は、使用できないことcsvread('mapping.csv')です.エラーが発生します.5131.40903intTMobileGregsapt

??? 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

2番目の問題は、マッピング関係を簡単に見つける方法です。単純な方法では、forloopを使用して配列の位置を見つけます。

ご協力いただきありがとうございます:)

4

2 に答える 2

7

csvread と dlmread はどちらも、数値データに対してのみ機能します。このようなものはあなたのために働くはずです

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)
于 2012-05-17T04:22:41.770 に答える