現在この質問をフォロー中です
- フォローしているコンテンツ フィードに更新が表示されます。
- コミュニケーション基本設定に応じて電子メールを受け取ることができます。
Matlab: Reading in data from an excel spreadsheet as a single integer
6 ビュー (過去 30 日間)
古いコメントを表示
Louis
2011 年 12 月 22 日
I am reading in data from an excel spreadsheet, but I am unable to use a comparison on what I read in. How can I read in a cell from an excel spreadsheet and compare what I get to a number? I'm pretty sure anything read from a spreadsheet is made into an array Here is the relevant code (edit: I'll give the whole code of what I have; edit2: Minor fixes, but being so new to MatLab, I think I'm not familiar with how to declare a variable):
>> for k = 2:4997
colF = 'F';
colE = 'E';
row = int2str(k);
entryF = strcat(colF, row);
entryE = strcat(colE,row);
millisecond = xlsread('someFile.xlsx', 1, entryE);
[~,message] = xlsread('someFile.xlsx', 1, entryF);
if millisecond == 1
soundMoment = 0;
elseif strcmp(message, 'probe_sound')
soundMoment = millisecond;
end
if soundMoment == 0
xlswrite('someFile.xlsx', 'preprobe', 1, entryF);
elseif millisecond > soundMoment
xlswrite('someFile.xlsx', 'postprobe', 1, entryF);
end
end
25 件のコメント
Walter Roberson
2011 年 12 月 22 日
Please check your file names: probably you should not have the * in the first one.
You should be using strcmp(message, 'probe_sound') instead of using == to compare the strings.
Aldin
2011 年 12 月 22 日
You say entryE is number an entryF is text than you can in my opinion make this compare:
if entryE = 1
soundMoment = 0;
elseif strcmp(entryF,'probe_sound')
soundMoment = millisecond;
end
Aldin
2011 年 12 月 22 日
The star and backslash is not needed. just type xlsread('someFile.xlsx',1,entryE)
Walter Roberson
2011 年 12 月 22 日
EntryE and EntryF are locations in the file, not the entries themselves.
The "=" operator cannot be used in an "if" statement; "==" is the comparison operator.
Aldin
2011 年 12 月 22 日
"good eye" :)
read data in excel and than xlswrtie the same data and than compare
what you want
Louis
2011 年 12 月 22 日
The error I get in MatLAB is:
Error using == , Matrix dimensions must agree.
So I know the problem is with what I read in, the only issue is WHAT the datatype is of millisecond and message. Do I just need to convert message into a string, and millisecond into an integer?
Aldin
2011 年 12 月 22 日
1 is an number you have to convert millisecond to number "str2num"
also for soundMoment
Louis
2011 年 12 月 22 日
I don't follow. Does the ~ in [~,name] stand for something? And name is just what I want my variable to be named?
Louis
2011 年 12 月 22 日
No error with the [~,message] bit, but now it says: Error using str2num (line 33), Requires string or character array input.
Walter Roberson
2011 年 12 月 22 日
In 2009b onward, a ~ on the left-hand side of an assignment means to throw away the corresponding output argument. If you are using a version before 2009b, replace the ~ with any variable name that is not being used.
Aldin
2011 年 12 月 22 日
delete all str2num functions in your code. And what is preprobe and postprobe it is the data to read in file???
Louis
2011 年 12 月 22 日
Oops, preprobe and postprobe are supposed to be strings that I'm writing into that spot in the Excel spreadsheet. I thought in MatLAB that declarations weren't needed.
Louis
2011 年 12 月 22 日
Did another small edit to the code, but I'm assuming to declare soundMoment, int soundMoment should work?
Walter Roberson
2011 年 12 月 22 日
Declarations are not required. The problem is that your conditions do not specify what soundMoment should be set to if neither test is met.
Louis
2011 年 12 月 22 日
I did "else soundMoment = -1;" and now there are no errors. The excel spreadsheet is quite big, so I'll have to wait to see if it came out as intended.
Louis
2011 年 12 月 23 日
It works, except it's never listing anything as preprobe. I get all postprobe right, but preprobe isn't showing.
Aldin
2011 年 12 月 23 日
In MATLAB there is no declaration such as in JAVA we have int, float, double, string...
参考
カテゴリ
Help Center および File Exchange で Spreadsheets についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!エラーが発生しました
ページに変更が加えられたため、アクションを完了できません。ページを再度読み込み、更新された状態を確認してください。
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom(English)
アジア太平洋地域
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)