質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MATLAB

MATLABはMathWorksで開発された数値計算や数値の視覚化のための高水準の対話型プログラミング環境です。

Q&A

解決済

1回答

403閲覧

matlab関数の引数について

satomuka

総合スコア6

MATLAB

MATLABはMathWorksで開発された数値計算や数値の視覚化のための高水準の対話型プログラミング環境です。

0グッド

0クリップ

投稿2018/06/04 07:26

前提・実現したいこと

matlabにてファイル名を入力すると動作する関数を作りたい
現在はエディター内にファイル名を入力しcsvreadで読み込みその後一連の処理を行っている
コマンドラインから関数を呼び出しファイル名を入力することで一連の処理を行えるようにしたい

発生している問題・エラーメッセージ

インデックスが配列範囲を超えていますと表示されています

該当のソースコード

matlab

1ソースコード 2filename=''; 3time=csvread(filename,4,0,[4 0 515 0]); 4Mx1=csvread(filename,4,1,[4 1 515 1]); 5My1=csvread(filename,4,2,[4 2 515 2]); 6Mz1=csvread(filename,4,3,[4 3 515 3]);

試したこと

function FFT_analyz_walk = importfile(’filename’)
filename='';
time=csvread(filename,4,0,[4 0 515 0]);
Mx1=csvread(filename,4,1,[4 1 515 1]);
My1=csvread(filename,4,2,[4 2 515 2]);
Mz1=csvread(filename,4,3,[4 3 515 3]);
と試してみたがエラーコードが返される

補足情報(FW/ツールのバージョンなど)

matlab2018a

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

自己解決しましたもっとスマートな方法があればよろしくお願いします
%フォルダ内のCSVファイルを読み込み
files = dir('*.csv');

%ワークスペース用の変数確保
%Time(:,i)で、i番目のファイルのtimeの列が取得可能
%Mx, My, Mzも同様
Time=[];
Mx=[];
My=[];
Mz=[];

%出力用フォルダがなければ作成
if exist('output') == 0
mkdir 'output';
end

for n=1:length(files);
%ファイルの情報の取得
[path, name, ext] = fileparts(files(n).name);

%データの読み込みと分割 time=csvread(files(n).name, 4, 0, [4 0 515 0]); mx=csvread(files(n).name, 4, 1, [4 1 515 1]); my=csvread(files(n).name, 4, 2, [4 2 515 2]); mz=csvread(files(n).name, 4, 3, [4 3 515 3]);

投稿2018/06/05 08:18

satomuka

総合スコア6

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問