国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ホームページ ウェブフロントエンド jsチュートリアル Matlabと平均スタックでWebアプリを作成する

Matlabと平均スタックでWebアプリを作成する

Feb 19, 2025 pm 01:22 PM

Creating a Web App with MATLAB and the MEAN Stack

コアポイント

  • テクニカルコンピューティングの高レベル言語(yǔ)であるMATLABは、平均スタックと統(tǒng)合して強(qiáng)力なWebアプリケーションを作成できます。
  • 平均スタックは、mongodb、express.js、angularjs、node.jsで構(gòu)成されており、Matlabと併用すると、Web上のリアルタイムのデータ視覚化が可能になります。
  • 統(tǒng)合プロセスには、Matlabのコンピューティングパワーを使用してデータを処理して結(jié)果を生成します。これは、平均スタックを使用して構(gòu)築されたWebアプリケーションに表示されます。
  • MATLAB言語(yǔ)での無(wú)料のオープンソースJSONエンコーダー/デコーダー実裝であるJSonLabは、Webアプリケーションで使用するためにMATLABデータをJSON形式に変換するために使用されます。
  • MATLAB Webアプリケーションの作成には、MATLABコンパイラを使用したスタンドアロンアプリケーションの作成、MATLAB WebアプリサーバーでWebアプリケーションプロジェクトの作成、Webアプリケーションプロジェクトへのスタンドアロンアプリケーションのアップロード、ユーザーへのWebアプリケーションの展開(kāi)が含まれます。
MATLABは、問(wèn)題やソリューションをおなじみの數(shù)學(xué)的表記で表現(xiàn)できる使いやすい環(huán)境で、コンピューティング、視覚化、プログラミングを統(tǒng)合する技術(shù)コンピューティングの高レベルの言語(yǔ)です。 Matlabで書(shū)かれ、何百萬(wàn)人もの科學(xué)者とエンジニアによって開(kāi)発された世界中に多くのプロジェクトがあります。 MATLABから取得したさまざまな実験および運(yùn)用データを使用して、Webアプリケーションをサポートすることができますが、いくつかの障害があります。

MATLABはマトリックス形式のデータを理解していますが、WebアプリケーションはJSONまたはXML形式でデータを好みます。
  • データは通常、MATLABプログラム內(nèi)で作成および使用されます。これにより、データの節(jié)約と使用などの開(kāi)発者の自由が制限されます。
  • MATLABがJSON形式でデータを提供し、WebアプリケーションがMATLABからこのJSONデータを使用して素晴らしいものを作成できる場(chǎng)合、アプリケーションの作成ははるかに簡(jiǎn)単です。
  • この記事では、MATLABと平均スタックを一緒に動(dòng)作させる方法を示すための小さなデモプログラムを開(kāi)発します。
Webアプリケーションについて

このWebアプリケーションには、MATLABからブラウザへのリアルタイムデータ転送が含まれます。簡(jiǎn)単にするために、現(xiàn)在の時(shí)刻をMATLABから転送し、ブラウザに表示します。 MATLABでJSONファイルをエンコード/デコードするためのツールボックスであるJSonLabを使用します。 Webアプリケーションは、平均スタックを使用して作成されます。平均スタックに慣れていない場(chǎng)合は、継続する前に「平均スタックの初心者」を読むことをお?jiǎng)幛幛筏蓼埂?

jsonlabの紹介

jsonlabは、matlab言語(yǔ)でのJSONエンコーダー/デコーダーの無(wú)料オープンソース実裝です。 MATLABデータ構(gòu)造(配列、構(gòu)造、セル、構(gòu)造配列、およびセル配列)をJSON形式の文字列に変換するか、JSONファイルをMATLABデータにデコードするために使用できます。

loadjson()、savejson()、loadubjson()、およびsaveubjson()の4つの関數(shù)へのアクセスを提供します。最後の2つの関數(shù)は、UBJSON形式を処理するために使用されます。 loadjson()は、JSON文字列を関連するMATLABオブジェクトに変換するために使用されます。私たちのプロジェクトでは、Matlabオブジェクト(セル、構(gòu)造、または配列)をJSON文字列に変換するsavejson()関數(shù)のみを使用します。次のように使用できます

json = savejson(rootname, obj, filename)
json = savejson(rootname, obj, opt)
json = savejson(rootname, obj, 'param1', value1, 'param2', value2, ...)
ファイルを記述する必要があるため、最初の署名を使用します。 JSON文字列を返し、文字列をファイルに書(shū)き込みます。

jsonlabのインストール

開(kāi)始するには、jsonlabをダウンロードし、アーカイブを解凍し、次のコマンドを使用してMATLABのパスリストにフォルダーのパスを追加します。

このパスを永続的に追加する場(chǎng)合は、

と入力し、jsonlabルートフォルダーを參照してリストに追加する必要があります。終了したら、[保存]をクリックする必要があります。次に、matlabで
addpath('/path/to/jsonlab');
を?qū)g行して

を?qū)g行します。出力が表示された場(chǎng)合、JsonLabが正しくインストールされていることを意味します。 pathtool rehashwhich loadjsonmatlab code

現(xiàn)在の時(shí)刻が必要なので、コマンドを使用します。 [年、月、日、時(shí)間、秒]の形式で現(xiàn)在の日付と時(shí)刻を含む6要素の日付ベクトルを返します。繰り返し時(shí)間を取得するために、

コマンドを無(wú)限の

ループに配置します。したがって、MATLABコマンドウィンドウでCTRL Cを使用してスクリプトの実行が終了するまで、リアルタイムデータを取得し続けます。 clock clock次のコードは、このアイデアを?qū)g裝しています:while

プロジェクトでは、営業(yè)時(shí)間、分、秒に焦點(diǎn)を當(dāng)てています。上記のコードで使用されている

関數(shù)は、マトリックスのすべての要素を最も近い整數(shù)に丸めます。時(shí)間データを取得するには、マトリックスの列4の値が必要なため、コマンド
format shortg;
y=0;
while y == 0
    % c = [year month day hour minute seconds]
    c=clock;
    % 將每個(gè)值四舍五入為整數(shù)
    c=fix(c);
    x.clock=c;
    % 訪問(wèn)c的第4列,即小時(shí)
    x.hours=c(:,4);
    % 訪問(wèn)c的第5列,即分鐘
    x.minutes=c(:,5);
    % 訪問(wèn)c的第6列,即秒
    x.seconds=c(:,6);
    % 將x轉(zhuǎn)換為JSON并寫(xiě)入matlabData.json
    savejson('',x,'data/matlabData.json');
end
を使用します。同じ方法を使用して、分と秒を取得します。

fix(c)クロックといくつかの個(gè)別の変數(shù)をWebアプリケーションに個(gè)別に送信して、MATLABオブジェクトからJSONへの異なるデータ型の変換を表示します。クロックデータは配列に変換されますが、時(shí)間、分、秒の値は數(shù)値に変換され、後で表示されます。 c(:,4) 私たちのプロジェクトでは、JSON形式を使用して変數(shù)xを変換および書(shū)き込み、ファイルに書(shū)き込みます

に書(shū)き込みます。簡(jiǎn)単にするために、

パラメーターは空の文字列になります。

前のコードを使用して、必要なすべてのMATLABコードを完了します。これで、スクリプトを?qū)g行すると、JSONファイルがデータフォルダーに作成され、ファイル內(nèi)のデータが自動(dòng)的かつ絶えず更新されることを観察できます。 JSONファイルコンテンツの例は次のとおりです savejson() matlabData.jsonこのファイルを監(jiān)視し、node.jsを使用して最新のデータを読み取ります。それでは、Webアプリケーションの構(gòu)築を開(kāi)始しましょう。 rootname

webアプリケーション

{
   "hours": 19,
   "minutes": 28,
   "seconds": 28,
   "clock": [2015,5,27,19,28,28]
}

MATLABデータがJSONに変換され、ファイルに保存されたため、このファイルを獨(dú)立して読み取り、変更を監(jiān)視してデータを取得できます。この操作は、MATLABとは何の関係もありません。この記事の殘りの部分では、基本的な概念の一部のみを使用していても、socket.ioと平均スタックを理解していると思います。

Webアプリケーションの作成を開(kāi)始しましょう。

package.jsonファイルを作成

アプリケーションを開(kāi)始するには、プロジェクトの依存関係を定義しましょう。これを行うには、次のようにpackage.jsonファイルを作成します。

json = savejson(rootname, obj, filename)
json = savejson(rootname, obj, opt)
json = savejson(rootname, obj, 'param1', value1, 'param2', value2, ...)
ファイルを作成した後、プロジェクトのルートフォルダーで

を?qū)g行して、すべての依存関係をインストールします。 NPMに慣れていない場(chǎng)合は、「NPM Getting Guide -Node Package Manager」を読むことをお?jiǎng)幛幛筏蓼埂?npm install

サーバーサイドコード コードのこの部分には、node.js、Express、およびMongodbの使用が含まれます。サーバーによって実行される操作には、

が含まれます

提供
    file
  • index.html jsonファイルのデータを監(jiān)視および読み取り
  • mongodb
  • を使用してデータベースにデータを保存します
  • socket.io
  • を使用してブラウザにデータを送信します
  • ルートフォルダーに
という名前のファイルを作成し、説明されているすべての機(jī)能に必要なコードを記述します。

server.js Expressを使用して靜的ファイルを提供します:

要求が
addpath('/path/to/jsonlab');
に送信されるたびに、

ディレクトリに保存されているファイルが提供されます。 / appファイルへの変更を監(jiān)視するには、index.htmlを使用し、ファイルが変更されるたびに読み取るには、

を使用します。変更が検出されると、ファイルが読み取られ、データが取得されます。プロセス全體が次のコードを使用して完了します。

fs.watch()クライアントとの接続が確立され、データの取得を開(kāi)始すると、2つのことが行われます。 fs.readFile() functionを使用して、データをブラウザに送信します

format shortg;
y=0;
while y == 0
    % c = [year month day hour minute seconds]
    c=clock;
    % 將每個(gè)值四舍五入為整數(shù)
    c=fix(c);
    x.clock=c;
    % 訪問(wèn)c的第4列,即小時(shí)
    x.hours=c(:,4);
    % 訪問(wèn)c的第5列,即分鐘
    x.minutes=c(:,5);
    % 訪問(wèn)c的第6列,即秒
    x.seconds=c(:,6);
    % 將x轉(zhuǎn)換為JSON并寫(xiě)入matlabData.json
    savejson('',x,'data/matlabData.json');
end

Mongooseミドルウェアを使用してMongoDBにデータを保存します<」

2番目の操作を?qū)g行するには、データのスキーマを作成し、そのスキーマに基づいてモデルを作成します。これは、以下に示すコードを使用して行われます:
  1. 前のコードセグメントの最後のステートメントでは、定義されたパターンに基づいてモデルを作成します。関數(shù)に渡された最初のパラメーターは、モデルが屬するセットの単數(shù)名です。 Mongooseは、複數(shù)の名前をコレクションに自動(dòng)的に割り當(dāng)てます。したがって、ここではemit()
  2. コレクションのモデルです。
  3. 新しいデータを取得すると、最新のデータを使用してスキーマの新しいインスタンスを作成し、
メソッドを使用してデータベースに保存します。このインスタンスはドキュメントと呼ばれます。次のコードでは、

はドキュメントです。

この部分の最終コードは次のとおりです。
json = savejson(rootname, obj, filename)
json = savejson(rootname, obj, opt)
json = savejson(rootname, obj, 'param1', value1, 'param2', value2, ...)

tryおよびcatchを使用して、アプリケーションのクラッシュを防ぎます。使用しないと、JSON.parseが急速な変更により予期しないユーザー入力エラーを引き起こした場(chǎng)合、アプリケーションがクラッシュする場(chǎng)合があります。これは私たちが避けたいものです!

また、MongoDBサーバーが実行されていることを確認(rèn)してください。そうしないと、アプリケーションがクラッシュします。

クライアントコード

このセクションでは、単純な靜的HTMLページを作成します。 socket.ioを介して新しいデータが受信されると、ページに表示されるデータを更新します。このデータは、リアルタイムチャートの作成にも使用できます。

以下は、

ファイルの単純なコードです:index.html

addpath('/path/to/jsonlab');

ディレクティブは、アプリケーションがロードされているときに、ブラウザが元の(コンパイルされていない)AngularJSテンプレートを簡(jiǎn)単に表示しないようにするために使用されます。 ngCloak

アプリケーションを?qū)g行します

node.jsサーバーを起動(dòng)する前に、MatlabコードとMongoDBサーバーが実行されていることを確認(rèn)する必要があります。 MongoDBサーバーを?qū)g行するには、端末でコマンド

を?qū)g行する必要があります。 node.jsサーバーを?qū)g行するには、プロジェクトフォルダーのルートディレクトリでコマンドmongodを?qū)g行する必要があります。 node server.js

現(xiàn)在の時(shí)刻を示す靜的ページは

で提供されます。 127.0.0.1:3000

結(jié)論 この記事では、平均スタックを使用して、MATLABプログラムからJSON形式のデータを取得するWebアプリケーションを作成します。データはJSonLabの助けを借りて変換されます。データはsocket.ioを使用してブラウザに送信されるため、ブラウザの変更はリアルタイムで反映されます。このデモの完全なソースコードは、GitHubで入手できます。

この記事を楽しんで、コメントを読むことを楽しみにしています。

(FAQSセクションは、記事の長(zhǎng)さのために個(gè)別に処理するようにお?jiǎng)幛幛筏蓼埂V匾寿|(zhì)問(wèn)と回答を抽出し、必要に応じて簡(jiǎn)単に要約または再編成できます。

以上がMatlabと平均スタックでWebアプリを作成するの詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國(guó)語(yǔ) Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見(jiàn)つけた場(chǎng)合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫(huà)像を無(wú)料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫(xiě)真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫(xiě)真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無(wú)料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無(wú)料のコードエディター

SublimeText3 中國(guó)語(yǔ)版

SublimeText3 中國(guó)語(yǔ)版

中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開(kāi)発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開(kāi)発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Java vs. JavaScript:混亂を解消します Java vs. JavaScript:混亂を解消します Jun 20, 2025 am 12:27 AM

JavaとJavaScriptは異なるプログラミング言語(yǔ)であり、それぞれ異なるアプリケーションシナリオに適しています。 Javaは大規(guī)模なエンタープライズおよびモバイルアプリケーション開(kāi)発に使用されますが、JavaScriptは主にWebページ開(kāi)発に使用されます。

JavaScriptコメント:短い説明 JavaScriptコメント:短い説明 Jun 19, 2025 am 12:40 AM

JavaScriptcommentsEareEssentialential-formaining、およびGuidingCodeexecution.1)single-linecommentseared forquickexplanations.2)多LinecommentsexplaincomplexlogiCorprovidededocumentation.3)clarifyspartsofcode.bestpractic

JSで日付と時(shí)間を操作する方法は? JSで日付と時(shí)間を操作する方法は? Jul 01, 2025 am 01:27 AM

JavaScriptで日付と時(shí)間を処理する場(chǎng)合は、次の點(diǎn)に注意する必要があります。1。日付オブジェクトを作成するには多くの方法があります。 ISO形式の文字列を使用して、互換性を確保することをお?jiǎng)幛幛筏蓼埂?2。時(shí)間情報(bào)を取得および設(shè)定して、メソッドを設(shè)定でき、月は0から始まることに注意してください。 3.手動(dòng)でのフォーマット日付には文字列が必要であり、サードパーティライブラリも使用できます。 4.ルクソンなどのタイムゾーンをサポートするライブラリを使用することをお?jiǎng)幛幛筏蓼埂¥长欷椁沃匾圣荪ぅ螗趣蛄?xí)得すると、一般的な間違いを効果的に回避できます。

なぜの下部にタグを配置する必要があるのですか? なぜの下部にタグを配置する必要があるのですか? Jul 02, 2025 am 01:22 AM

PLACSTHETTHETTHE BOTTOMOFABLOGPOSTORWEBPAGESERVESPAGESPORCICALPURPOSESESFORSEO、userexperience、andDesign.1.IthelpswithiobyAllowingseNStoAccessKeysword-relevanttagwithtagwithtagwithtagwithemaincontent.2.iTimrovesexperiencebyepingepintepepinedeeping

JavaScript vs. Java:開(kāi)発者向けの包括的な比較 JavaScript vs. Java:開(kāi)発者向けの包括的な比較 Jun 20, 2025 am 12:21 AM

javascriptispreferredforwebdevelopment、whilejavaisbetterforlge-scalebackendsystemsandroidapps.1)javascriptexcelsininintingtivewebexperiences withitsdynAmicnature anddommanipulation.2)javaofferstruntypyping-dobject-reientedpeatures

DOMでのイベントの泡立ちとキャプチャとは何ですか? DOMでのイベントの泡立ちとキャプチャとは何ですか? Jul 02, 2025 am 01:19 AM

イベントキャプチャとバブルは、DOMのイベント伝播の2つの段階です。キャプチャは最上層からターゲット要素までであり、バブルはターゲット要素から上層までです。 1.イベントキャプチャは、AddEventListenerのUseCaptureパラメーターをTrueに設(shè)定することにより実裝されます。 2。イベントバブルはデフォルトの動(dòng)作であり、UseCaptureはfalseに設(shè)定されているか、省略されます。 3。イベントの伝播を使用して、イベントの伝播を防ぐことができます。 4.イベントバブルは、動(dòng)的なコンテンツ処理効率を改善するためにイベント委任をサポートします。 5.キャプチャを使用して、ロギングやエラー処理など、事前にイベントを傍受できます。これらの2つのフェーズを理解することは、タイミングとJavaScriptがユーザー操作にどのように反応するかを正確に制御するのに役立ちます。

JavaScript:効率的なコーディングのためのデータ型の調(diào)査 JavaScript:効率的なコーディングのためのデータ型の調(diào)査 Jun 20, 2025 am 12:46 AM

javascripthassevenfundamentaldatypes:number、string、boolean、undefined、null、object、andsymbol.1)numberseadouble-precisionformat、有用であるため、有用性の高いものであるため、but-for-loating-pointarithmetic.2)ストリングリムムット、使用率が有用であること

JavaScriptアプリケーションのペイロードサイズをどのように削減できますか? JavaScriptアプリケーションのペイロードサイズをどのように削減できますか? Jun 26, 2025 am 12:54 AM

JavaScriptアプリケーションがゆっくりとロードされ、パフォーマンスが低い場(chǎng)合、問(wèn)題はペイロードが大きすぎることです。ソリューションには、次のものが含まれます。1。コード分割(コードスプリッティング)を使用し、React.lazy()またはビルドツールを介して大きなバンドルを複數(shù)の小さなファイルに分割し、最初のダウンロードを減らすために必要に応じてロードします。 2。未使用のコード(Treeshaking)を削除し、ES6モジュールメカニズムを使用して「デッドコード」をクリアして、導(dǎo)入されたライブラリがこの機(jī)能をサポートしていることを確認(rèn)します。 3.リソースファイルを圧縮してマージし、GZIP/BrotliとTerserがJSを圧縮できるようにし、ファイルを合理的にマージし、靜的リソースを最適化します。 4.頑丈な依存関係を交換し、day.jsやフェッチなどの軽量ライブラリを選択します

See all articles