Bagaimana untuk menulis fungsi dalam MATLAB. g=9.81; %pecutan graviti. Memasukkan nombor kompleks

Skrip

Bersama-sama dengan bekerja pada baris arahan, terdapat cara lain untuk melaksanakan arahan. Ini adalah program penulisan.

Skrip ialah urutan perintah MATLAB yang ditulis dalam fail dengan sambungan ".m". Ini adalah fail teks biasa. Anda boleh menggunakan mana-mana editor teks untuk menulisnya.

Untuk mencipta skrip, secara amnya, sudah cukup untuk mempunyai editor teks biasa di tangan. Kami akan menggunakan editor terbina dalam persekitaran MATLAB. Gunakan butang Skrip Baharu di penjuru kiri sebelah atas untuk mencipta skrip baharu. Selepas mengklik butang ini, tetingkap editor teks akan muncul (Rajah 5).

Rajah 5. Editor kod MATLAB Mari buat program kecil:

fprintf("Hello World!\n")

Sekarang anda perlu menyimpan skrip ini; untuk melakukan ini, klik pada butang "Simpan" di sudut kiri atas, selepas itu MATLAB akan menawarkan untuk menyimpannya dalam direktori semasa ("Folder Semasa"). Mari beri nama skrip "Contoh1.m" dan simpannya. Adalah dinasihatkan bahawa skrip disimpan dalam direktori semasa, jadi MATLAB akan mencari skrip untuk dijalankan

dalam folder yang disenaraikan dalam pembolehubah laluan MATLAB dalaman. Senarai ini juga termasuk direktori semasa, dipaparkan dalam persekitaran MATLAB di sebelah kanan dalam kawasan terapung khas. Secara lalai, skrip akan disimpan ke direktori semasa, jadi anda boleh memanggilnya dengan segera. Anda boleh menjalankan skrip dengan memasukkan namanya (nama fail m di mana ia disimpan) dalam baris arahan dan menekan butang "Enter" atau "Run" dalam editor kod. Dalam kedua-dua kes, tetingkap arahan memaparkan output berikut:

>> Contoh1 Hello World!

Mari kita lihat contoh lain. Terdapat skrip:

x = 0:0.02:2*pi; a = 0.3;

y = a * sin(x) + b * cos(x); plot(x, y)

Mari kita simpan ke fail Contoh2.m dan jalankannya. Hasilnya, MATLAB akan mengira dan memaparkan graf bagi fungsi y = a sin(x)+ b cos(x).

Kami juga ambil perhatian bahawa selepas melaksanakan skrip, pembolehubah x, a, b dan y muncul dalam tetingkap "Ruang Kerja". Untuk menjelaskan mengapa ini berlaku, pertimbangkan konsep yang sangat penting dalam MATLAB ruang kerja.

Ruang kerja dalam MATLAB

Kawasan kerja sistem MATLAB ialah kawasan memori di mana pembolehubah sistem terletak. Terdapat dua jenis ruang kerja dalam MATLAB:

ruang kerja asas - ruang kerja asas;

ruang kerja fungsi - ruang kerja fungsi.

Semua pembolehubah dalam ruang kerja wujud dalam ruang kerja dari masa ia diisytiharkan apabila bekerja dengan ruang kerja itu sehingga ia dialih keluar secara eksplisit menggunakan arahan yang jelas atau sehingga akhir hayat ruang kerja, seperti menutup MATLAB untuk ruang kerja asas.

Apabila skrip dilancarkan, ia tidak mencipta ruang kerja baharu, tetapi berfungsi dengan ruang kerja tempat ia dipanggil.

Apabila kami memanggil skrip daripada tetingkap arahan, ia berfungsi dengan ruang kerja asas, jadi semua pembolehubah yang kami buat sebelum memanggil skrip tersedia untuknya. Selain itu, jika skrip mencipta lebih banyak pembolehubah, ia akan kekal tersedia selepas itu

penyempurnaannya.

Komen

Ia dianggap sebagai amalan yang baik apabila menulis kod perisian untuk menulis komen pada kod yang anda tulis. Komen tidak menjejaskan pengendalian program dalam apa jua cara dan berfungsi untuk memberikan maklumat tambahan. Komen akan membantu orang lain memahami algoritma anda dan membantu anda mengingati intipati apa yang anda tulis selepas beberapa tempoh apabila anda sudah melupakan perkara yang anda aturkan. MATLAB menggunakan simbol "%" untuk menunjukkan permulaan komen.

% Menjana Nombor Rawak Teragih Seragam

% Mengira jangkaan matematik bagi nombor yang dijana

% Memaparkan data pada graf

% 50 nombor rawak

% Hasilkan dan tetapkan vektor rawak

nilai pembolehubah r

% Paparkan vektor yang dijana pada graf

% Lukis satu garisan

melalui (0, m) dan (n, m)

% Kira min aritmetik bagi nilai

vektor r

plot(,)

tajuk("Min Data Seragam Rawak") % Tajuk carta

Fungsi

Satu lagi jenis program MATLAB ialah fungsi. Tidak seperti skrip, apabila dipanggil, fungsi mencipta ruang kerja baharu, jadi pembolehubah yang diisytiharkan di luar kodnya tidak akan kelihatan di dalam fungsi. Oleh itu, parameter input dan output digunakan untuk menyampaikan fungsi dengan kod luaran. Mari lihat sintaks umum untuk mengisytiharkan fungsi:

fungsi = nama_fungsi(x1,...,xM) operator_1 operator_2

operator_n tamat

Fungsi ini terkandung dalam fail-m yang berasingan.

Fungsi bermula dengan fungsi kata kunci diikuti dengan segi empat sama

nama pembolehubah keluaran dipisahkan dengan koma dalam kurungan. Seterusnya datang tanda "=" dan nama fungsi. Nama fungsi mengikut peraturan yang sama seperti nama pembolehubah. Kami juga ambil perhatian bahawa nama fungsi mesti sepadan dengan nama fail di mana ia ditakrifkan. Selepas nama fungsi, nama parameter input dipisahkan dengan koma dalam kurungan.

Baris berikut mengandungi badan fungsi (sebarang ungkapan MATLAB yang sah).

Fungsi ini berakhir dengan kata kunci akhir, namun ini adalah pilihan dan boleh diabaikan.

Juga ambil perhatian bahawa jika fungsi mengembalikan hanya satu parameter, maka ia tidak perlu disertakan dalam kurungan segi empat sama, sebagai contoh:

fungsi s = triaLuas(a, b)

% mengira luas segi tiga tepat

% a, b - kaki segi tiga

s = a * b / 2; tamat

Jika fungsi tidak mengembalikan parameter sama sekali, maka sejurus selepas kata kunci fungsi muncul nama fungsi, contohnya:

fungsi hellowWorld()

% contoh fungsi tanpa parameter input dan output disp("Hello world!");

Sintaks berikut digunakan untuk memanggil fungsi:

Nama_fungsi(z1,...,zM)

di mana k1, ..., kN ialah pembolehubah di mana nilai output fungsi akan ditulis, az1,..., zM ialah argumen fungsi.

Jika fungsi mengembalikan hanya satu parameter, maka kurungan persegi boleh diabaikan, sebagai contoh:

s = triaLuas(1,2)

Parameter sebenar dan formal fungsi

Adalah penting untuk membezakan antara parameter sebenar dan formal fungsi:

parameter sebenar - hujah yang dihantar ke fungsi apabila ia dipanggil;

parameter formal - hujah yang ditentukan semasa mengisytiharkan atau mentakrifkan fungsi.

Mari kita jelaskan perbezaan ini dengan contoh.

Kebanyakan pembangun mengalami kesukaran memahami kedua-dua sintaks dan keupayaannya. Masalahnya ialah bahasa itu berkaitan secara langsung dengan produk perisian yang popular, yang kosnya boleh mencapai nilai yang menakjubkan. Jadi, persoalan utama ialah: adakah bahasa Matlab itu sendiri begitu baik? Dan bolehkah ia berguna untuk anda?

Penggunaan

Mari kita mulakan bukan dengan lawatan standard ke dalam sejarah dan perbincangan tentang kebaikan dan keburukan bahasa, tetapi dengan persekitaran perisian MATLAB/Simulink - satu-satunya tempat di mana wira teks ini boleh berguna. Bayangkan sahaja editor grafik di mana anda boleh merealisasikan mana-mana idea anda tanpa mempunyai pengalaman beberapa tahun dan pendidikan yang berkaitan di belakang anda. Dan setelah mencipta rajah interaksi antara alat sekali, anda akan mendapat skrip berkualiti tinggi untuk kegunaan berulang.

MATLAB hanyalah editor sedemikian dalam dunia data. Skop aplikasinya sangat luas: IoT, kewangan, perubatan, ruang, automasi, robotik, sistem wayarles dan banyak lagi. Secara umum, terdapat kemungkinan hampir tidak terhad untuk mengumpul dan menggambarkan data, serta ramalan, tetapi hanya jika anda mempunyai peluang untuk membeli pakej yang sesuai.

Bagi harga, hampir tiada had atas, tetapi had bawah adalah sekitar $99. Untuk merampas produk berkuasa sedemikian dengan wang yang agak kecil, anda perlu menjadi pelajar universiti. Dan sudah tentu anda akan mendapat produk yang agak terhad.

Ciri-ciri bahasa

Bahasa MATLAB ialah alat yang menyediakan interaksi antara operator (selalunya bukan pengaturcara) dengan semua keupayaan yang ada untuk menganalisis, mengumpul dan mempersembahkan data. Ia mempunyai ciri kebaikan dan keburukan yang jelas bagi bahasa yang hidup dalam ekosistem tertutup.

Kelemahan:

    Bahasa yang perlahan dan sarat dengan pengendali, arahan dan fungsi, tujuan utamanya adalah untuk meningkatkan persepsi visual.

    Fokus sempit. Tiada platform perisian lain di mana MATLAB berguna.

    Kos perisian yang tinggi. Jika anda bukan pelajar, sama ada bersedia untuk mengosongkan poket anda atau melepasi garis undang-undang. Dan walaupun anda seorang pelajar, harganya berpatutan.

    Permintaan rendah. Walaupun minat yang besar dalam MATLAB dalam hampir semua bidang, hanya segelintir yang benar-benar dan sah menggunakannya.

Kelebihan:

    Bahasa ini mudah dipelajari dan mempunyai sintaks yang mudah dan mudah difahami.

    Peluang besar. Tetapi ini adalah kelebihan produk secara keseluruhan.

    Kemas kini yang kerap, biasanya perubahan positif yang ketara berlaku sekurang-kurangnya beberapa kali setahun.

    Persekitaran perisian membolehkan anda menukarnya kepada kod "pantas" dalam C, C++.

Khalayak sasaran

Sudah tentu, tidak semua orang memerlukan MATLAB. Walaupun rangkaian aplikasinya yang luas, sukar untuk membayangkan bahawa rata-rata pembangun aplikasi memerlukan pengetahuan tentang bahasa ini. MATLAB amat berguna dalam bidang yang memerlukan pemprosesan data yang mantap, seperti sistem autopilot dalam kereta atau sistem avionik pesawat.

Iaitu, jika anda bukan seorang pengaturcara, tetapi satu cara atau yang lain profesion anda berkaitan dengan keperluan untuk pemprosesan data program, maka produk MATLAB/Simulink dengan bahasa yang sesuai boleh memudahkan tugas harian anda.

kesusasteraan

Kami menyimpulkan semakan bahasa, seperti biasa, dengan senarai kesusasteraan pendidikan. Sudah tentu, di antara mereka anda tidak akan menemui buku secara eksklusif mengenai bahasa, tetapi ini hanya akan menjadikan persepsi bahasa lebih mudah:

Adakah anda mempunyai pengalaman dengan MATLAB? Dan yang mana?

Bagi mereka yang ingin menjadi seorang programmer - .

Arahan

Persekitaran MATLAB mempunyai beberapa mod operasi. Yang paling mudah ialah memasukkan arahan terus ke dalam tetingkap arahan ( Tetingkap Perintah).
Jika ia tidak kelihatan dalam antara muka program, maka anda perlu membukanya. Anda boleh mencari tetingkap arahan melalui menu Desktop -> Tetingkap Perintah.
Sebagai contoh, mari masukkan arahan "x = ; y = sqrt(x); plot(y);" ke dalam tetingkap ini secara berurutan satu demi satu dan tekan kekunci "Enter" ( Masuk). Program ini akan mencipta pembolehubah X serta-merta, mencipta pembolehubah Y dan mengira nilainya untuk fungsi tertentu, dan kemudian membina grafnya.
Menggunakan anak panah papan kekunci "Atas" dan "Bawah" dalam tetingkap arahan, kita boleh bertukar antara semua arahan yang dimasukkan, segera menukarnya jika perlu, dan dengan menekan Enter sekali lagi menghantarnya ke persekitaran MATLAB untuk dilaksanakan.
Selesa? Tidak dinafikan. Dan yang paling penting - sangat cepat. Semua tindakan ini mengambil masa beberapa saat.
Tetapi bagaimana jika anda memerlukan organisasi pasukan yang lebih kompleks? Jika anda memerlukan pelaksanaan kitaran beberapa arahan? Memasukkan arahan secara manual satu demi satu dan kemudian mencari melalui sejarah untuk masa yang lama boleh menjadi agak membosankan.

Untuk menjadikan hidup lebih mudah bagi seorang saintis, jurutera atau pelajar, tetingkap editor ( Editor). Mari buka tetingkap editor melalui menu Desktop -> Editor.
Di sini anda boleh mencipta pembolehubah baharu, membina graf, menulis atur cara (skrip), mencipta komponen untuk pertukaran dengan persekitaran lain, mencipta aplikasi dengan antara muka pengguna (GUI) dan mengedit yang sedia ada. Tetapi pada masa ini kami berminat untuk menulis program yang mengandungi fungsi untuk digunakan semula pada masa hadapan. Jadi mari kita pergi ke menu Fail dan pilih Baru -> M-Fail.

Di medan editor kami akan menulis program mudah, tetapi merumitkannya sedikit:

fungsi draw_plot(x)
y = log(x); % Tetapkan fungsi pertama
subplot(1, 2, 1), plot(x, y); % Membina graf pertama
y = sqrt(x); % Tetapkan fungsi kedua
subplot(1, 2, 2), plot(x, y); % Membina graf kedua

Kami telah menambah fungsi kedua dan akan memaparkan dua graf bersebelahan antara satu sama lain. Tanda peratusan menandakan ulasan dalam MATLAB.
Jangan lupa simpan program. Sambungan fail standard untuk program Matlab ialah *.m.
Sekarang tutup editor dan tetingkap dengan graf yang kami bina tadi.

Kembali ke tetingkap arahan.
Anda boleh mengosongkan sejarah arahan supaya maklumat yang tidak diperlukan tidak mengganggu kami. Untuk melakukan ini, klik kanan pada medan input arahan dan pilih item dalam menu konteks yang terbuka Kosongkan Tetingkap Perintah.
Kami masih mempunyai pembolehubah X daripada percubaan sebelumnya; kami tidak mengubah atau memadamkannya. Oleh itu, anda boleh segera masuk ke dalam tetingkap arahan:
draw_plot(x);
Anda akan melihat bahawa MATLAB akan membaca fungsi kami dari fail dan melaksanakannya, melukis graf.

Persekitaran MATLAB mempunyai beberapa mod operasi. Yang paling mudah ialah memasukkan arahan terus ke dalam tetingkap arahan ( Tetingkap Perintah).

Tetingkap Perintah MATLAB

Jika ia tidak kelihatan dalam antara muka program, bukanya. Anda boleh mencari tetingkap arahan melalui menu Desktop Tetingkap Perintah.

Sebagai contoh, mari masukkan arahan ke dalam tetingkap ini satu demi satu:

X = ; y = sqrt(x); plot(y);

dan tekan kekunci Enter ( Masuk). Program ini akan mencipta pembolehubah X serta-merta, mencipta pembolehubah Y dan mengira nilainya untuk fungsi tertentu, dan kemudian memplotkannya.

Menggunakan papan kekunci anak panah ke atas dan ke bawah dalam tetingkap arahan, kita boleh bertukar antara arahan yang dimasukkan, segera menukarnya, dan dengan menekan Masuk hantar ke persekitaran MATLAB untuk dilaksanakan. Menggunakan anak panah kiri dan kanan anda boleh menavigasi melalui perintah yang dimasukkan dan mengeditnya. Jika terdapat koma bertitik di hujung arahan, hasilnya akan dikira, tetapi tidak akan dipaparkan dalam tetingkap arahan; jika tidak, hasil arahan akan dipaparkan serta-merta. Untuk sebarang fungsi dalam persekitaran MATLAB terdapat bantuan terbina dalam yang terperinci. Sebagai contoh, untuk mendapatkan bantuan pada arahan plot, pilih arahan ini, klik kanan padanya dan dalam menu konteks yang terbuka, pilih Bantuan pada Pemilihan atau tekan kekunci F1.

Mendapatkan bantuan dengan arahan MATLAB

Selesa? Tidak dinafikan. Dan yang paling penting - sangat cepat. Semua tindakan ini mengambil masa beberapa saat.

Tetapi bagaimana jika anda memerlukan organisasi pasukan yang lebih kompleks? Jika anda memerlukan pelaksanaan kitaran beberapa arahan? Memasukkan arahan secara manual satu demi satu dan kemudian mencari melalui sejarah untuk masa yang lama boleh menjadi agak membosankan.

2 Bekerja dengan editor dalam persekitaran MATLAB

Untuk menjadikan hidup lebih mudah bagi seorang saintis, jurutera atau pelajar, tetingkap editor ( Editor). Mari buka tetingkap editor melalui menu Desktop Editor.

Dalam tetingkap editor, anda boleh mencipta pembolehubah baharu, membina graf, menulis atur cara (skrip), mencipta komponen untuk pertukaran dengan persekitaran lain, mencipta aplikasi dengan antara muka pengguna (GUI) dan mengedit yang sedia ada.

Kami kini berminat untuk menulis program yang mengandungi fungsi untuk digunakan semula pada masa hadapan. Jadi mari kita pergi ke menu Fail editor dan pilih Baru M-Fail.


Fail-M dalam persekitaran MATLAB ialah fail yang mengandungi teks program (skrip) atau fungsi yang ditentukan pengguna.

Mari tulis fungsi mudah dalam editor draw_plot:

fungsi draw_plot(x)% Tetapkan fungsi pertama: y = log(x); % Kami membina graf pertama: subplot(1, 2, 1), plot(x, y); % Tetapkan fungsi kedua: y = sqrt(x); % Kami membina graf kedua: subplot(1, 2, 2), plot(x, y);

Kembali ke tetingkap arahan.

Anda boleh mengosongkan sejarah arahan supaya maklumat yang tidak diperlukan tidak mengganggu kami. Untuk melakukan ini, klik kanan pada medan input arahan dan pilih item dalam menu konteks yang terbuka Kosongkan Tetingkap Perintah.

Kami masih mempunyai pembolehubah X daripada percubaan sebelumnya; kami tidak mengubah atau memadamkannya. Oleh itu, anda boleh segera masuk ke dalam tetingkap arahan:

Draw_plot(x);

Anda akan melihat bahawa MATLAB akan membaca fungsi kami dari fail dan melaksanakannya, melukis graf.


Jika MATLAB mengeluarkan mesej semasa melaksanakan program, Fungsi atau kaedah yang tidak ditentukan "draw_plot" untuk input argumen jenis "double".(iaitu fungsi yang tidak diketahui dipanggil), klik butang anak panah hijau dalam tetingkap editor ( Lari) atau melalui menu editor: Nyahpepijat Jalankan draw_plot.m. MATLAB akan melaporkan bahawa direktori yang mengandungi fail program kami (draw_plot.m) bukan direktori kerja. Klik butang dalam kotak dialog Tambahkan pada Path supaya MATLAB menambah direktori ke laluan kerja dan boleh menggunakan fail M kami. Selepas ini, program harus bermula seperti biasa.

). Antara alatan tujuan am yang digunakan dalam kemometrik, pakej MatLab menduduki tempat yang istimewa. Popularitinya luar biasa tinggi. Ini kerana MatLab berkuasa dan serba boleh untuk memproses data berbilang dimensi. Struktur pakej menjadikannya alat yang mudah untuk melakukan pengiraan matriks. Pelbagai masalah yang boleh dikaji menggunakan MatLab termasuk: analisis matriks, isyarat dan pemprosesan imej, rangkaian saraf dan lain-lain lagi. MatLab ialah bahasa sumber terbuka peringkat tinggi yang membolehkan pengguna lanjutan memahami algoritma yang diprogramkan. Bahasa pengaturcaraan terbina dalam yang ringkas memudahkan anda mencipta algoritma anda sendiri. Selama bertahun-tahun menggunakan MatLab, sejumlah besar fungsi dan Kotak Alat (pakej alat khusus) telah dicipta. Yang paling popular ialah pakej PLS ToolBox daripada Eigenvector Research, Inc.

1. Maklumat asas

1.1. Persekitaran kerja MatLab

Untuk melancarkan program, klik dua kali pada ikon. Persekitaran kerja yang ditunjukkan dalam rajah akan terbuka di hadapan anda.

Persekitaran kerja MatLab 6.x berbeza sedikit daripada ruang kerja versi sebelumnya, ia mempunyai antara muka yang lebih mudah untuk mengakses banyak elemen sokongan

Persekitaran kerja MatLab 6.x mengandungi unsur-unsur berikut:

    bar alat dengan butang dan senarai juntai bawah;

    tetingkap dengan tab Launch Pad dan Ruang kerja, dari mana anda boleh mengakses pelbagai modul ToolBox dan kandungan meja kerja;

    tingkap tab Sejarah Perintah Dan Direktori Semasa, bertujuan untuk melihat dan memanggil semula arahan yang dimasukkan sebelum ini, serta untuk menetapkan direktori semasa;

    tetingkap arahan yang mengandungi gesaan "input" dan kursor menegak yang berkelip;

    bar status.

Jika dalam persekitaran kerja MatLab 6.x Jika beberapa tetingkap yang ditunjukkan dalam rajah tiada, anda harus memilih item yang sesuai dalam menu Lihat: Tetingkap Perintah, Sejarah Perintah, Direktori Semasa, Ruang Kerja, Pad Pelancaran.

Perintah hendaklah ditaip dalam tetingkap arahan. Simbol » , menunjukkan gesaan baris arahan, tidak perlu ditaip. Untuk melihat kawasan kerja, anda boleh menggunakan bar skrol atau Laman Utama, kekunci Tamat untuk bergerak ke kiri atau kanan dan PageUp, PageDown untuk bergerak ke atas atau ke bawah. Jika tiba-tiba, selepas bergerak di sekitar kawasan kerja tetingkap arahan, baris arahan dengan kursor berkelip hilang, hanya tekan Enter.

Adalah penting untuk diingat bahawa menaip sebarang arahan atau ungkapan mesti diakhiri dengan menekan Enter agar MatLab melaksanakan perintah itu atau menilai ungkapan tersebut.

1.2. Pengiraan mudah

Taipkan 1+2 pada baris arahan dan tekan Enter. Akibatnya, tetingkap arahan MatLab memaparkan perkara berikut:

nasi. 2 Perwakilan grafik analisis komponen utama

Apakah yang dilakukan oleh program MatLab? Mula-mula, dia mengira jumlah 1+2, kemudian menulis hasilnya kepada pembolehubah khas dan memaparkan nilainya, sama dengan 3, dalam tetingkap arahan. Di bawah respons adalah baris arahan dengan kursor berkelip, menunjukkan bahawa MatLab bersedia untuk pengiraan selanjutnya. Anda boleh menaip ungkapan baharu pada baris arahan dan mencari maknanya. Jika anda perlu terus bekerja dengan ungkapan sebelumnya, contohnya, hitung (1+2)/4.5, maka cara paling mudah ialah menggunakan hasil yang sedia ada, yang disimpan dalam pembolehubah ans. Taip ans/4.5 (titik digunakan apabila memasukkan perpuluhan) dan tekan Masuk, Kesudahannya

nasi. 3 Perwakilan grafik analisis komponen utama

1.3. Perintah gema

Pelaksanaan setiap arahan dalam MatLab disertakan dengan gema. Dalam contoh di atas, jawapannya ialah ans = 0.6667. Selalunya gema menjadikannya sukar untuk melihat operasi program dan kemudian ia boleh dimatikan. Untuk melakukan ini, arahan mesti berakhir dengan koma bertitik. Sebagai contoh

nasi. 4 Contoh memasukkan fungsi ScoresPCA

1.4. Pemeliharaan persekitaran kerja. fail MAT

Cara paling mudah untuk menyimpan semua nilai pembolehubah adalah dengan menggunakan pilihan Simpan Ruang Kerja Sebagai dalam menu Fail. Ini akan membuka kotak dialog Simpan Pembolehubah Ruang Kerja, di mana anda mesti menentukan direktori dan nama fail. Secara lalai, adalah dicadangkan untuk menyimpan fail dalam subdirektori kerja direktori MatLab utama. Program ini akan menyimpan hasil kerjanya dalam fail dengan tikar sambungan. Kini anda boleh menutup MatLab. Dalam sesi kerja seterusnya, untuk memulihkan nilai pembolehubah, anda harus membuka fail yang disimpan ini menggunakan sub-item Buka menu Fail. Kini semua pembolehubah yang ditakrifkan dalam sesi lepas tersedia semula. Ia boleh digunakan dalam arahan yang baru dimasukkan.

1.5. Majalah

MatLab mempunyai keupayaan untuk menulis arahan dan hasil boleh laku pada fail teks (simpan log kerja), yang kemudiannya boleh dibaca atau dicetak daripada editor teks. Untuk memulakan log gunakan arahan diari. Sebagai hujah perintah diari anda harus menyatakan nama fail di mana log kerja akan disimpan. Perintah yang ditaip lebih lanjut dan hasil pelaksanaannya akan ditulis ke fail ini, contohnya urutan arahan

melakukan tindakan berikut:

    membuka log dalam fail contoh-1.txt;

    melakukan pengiraan;

    menyimpan semua pembolehubah dalam fail MAT work-1.mat ;

    menyimpan log dalam fail exampl-1.txt dalam subdirektori kerja direktori akar MatLab dan menutup MatLab;

Lihat kandungan fail exampl-1.txt dalam beberapa editor teks. Fail tersebut akan mengandungi teks berikut:

a1=3;
a2=2.5;
a3=a1+a2

Simpan kerja-1
berhenti

1.6. Sistem bantuan

Tetingkap Bantuan MatLab muncul selepas memilih pilihan Tetingkap Bantuan daripada menu Bantuan atau dengan mengklik butang soalan pada bar alat. Operasi yang sama boleh dilakukan dengan menaip arahan helpwin. Untuk memaparkan tetingkap bantuan untuk topik individu, taip topik helpwin. Tetingkap bantuan memberikan anda maklumat yang sama seperti arahan bantuan, tetapi antara muka tetingkap menyediakan pautan yang lebih mudah kepada topik bantuan lain. Menggunakan alamat halaman Web Math Works, anda boleh mengakses pelayan syarikat dan mendapatkan maklumat terkini tentang isu yang menarik minat anda. Anda boleh menyemak produk perisian baharu atau mencari jawapan kepada masalah anda di halaman sokongan teknikal.

2. Matriks

2.1. Skalar, vektor dan matriks

Dalam MatLab anda boleh menggunakan skalar, vektor dan matriks. Untuk memasukkan skalar, cukup untuk menetapkan nilainya kepada beberapa pembolehubah, sebagai contoh

Ambil perhatian bahawa MatLab membezakan antara huruf besar dan huruf besar, jadi p dan P adalah pembolehubah yang berbeza. Untuk memasukkan tatasusunan (vektor atau matriks), elemen mereka disertakan dalam kurungan segi empat sama. Jadi, untuk memasukkan vektor baris 1x3, gunakan arahan berikut, di mana elemen baris dipisahkan dengan ruang atau koma.

Apabila memasukkan vektor lajur, elemen dipisahkan dengan koma bertitik. Sebagai contoh,

Ia adalah mudah untuk memasukkan matriks kecil terus dari baris arahan. Dalam input, matriks boleh dianggap sebagai vektor lajur, setiap elemen adalah vektor baris.

atau matriks boleh dianggap sebagai vektor baris, setiap elemen adalah vektor lajur.

2.2. Mengakses elemen

Akses kepada elemen matriks dijalankan menggunakan dua indeks - nombor baris dan lajur yang disertakan dalam kurungan, sebagai contoh, arahan B(2,3) akan mengembalikan elemen baris kedua dan lajur ketiga matriks B. Untuk memilih lajur atau baris daripada matriks, gunakan lajur atau nombor baris matriks sebagai salah satu indeks dan gantikan indeks yang lain dengan bertindih. Sebagai contoh, mari kita tulis baris kedua matriks A ke dalam vektor z

Anda juga boleh memilih blok matriks menggunakan titik bertindih. Sebagai contoh, mari kita pilih daripada matriks P blok yang ditandakan dengan warna

Jika anda perlu melihat pembolehubah persekitaran kerja, anda perlu menaip arahan pada baris arahan siapa .

Dapat dilihat bahawa persekitaran kerja mengandungi satu skalar (p), empat matriks (A, B, P, P1) dan vektor baris (z).

2.3. Operasi Matriks Asas

Apabila menggunakan operasi matriks, ingat bahawa untuk penambahan atau penolakan, matriks mestilah sama saiz, dan apabila mendarab, bilangan lajur matriks pertama mestilah sama dengan bilangan baris matriks kedua. Penambahan dan penolakan matriks, serta nombor dan vektor, dijalankan menggunakan tanda tambah dan tolak.

dan pendaraban ditandakan dengan asterisk *. Mari kita perkenalkan matriks bersaiz 3×2

Mendarab matriks dengan nombor juga dilakukan menggunakan asterisk, dan anda boleh mendarab dengan nombor di sebelah kanan dan di sebelah kiri. Menaikkan matriks segi empat sama kepada kuasa integer dilakukan menggunakan operator ^

Semak keputusan anda dengan mendarab matriks P dengan sendiri.

2.4. Mencipta matriks jenis khas

Mengisi matriks segi empat tepat dengan sifar dilakukan oleh fungsi terbina dalam sifar

Matriks identiti dibuat menggunakan fungsi mata

Satu matriks yang terdiri daripada satu terbentuk hasil daripada memanggil fungsi tersebut satu

MatLab menyediakan keupayaan untuk mengisi matriks dengan nombor rawak. Hasil daripada fungsi rand ialah matriks nombor yang diedarkan secara seragam antara sifar dan satu, dan fungsi randn- matriks nombor yang diedarkan mengikut hukum biasa dengan min sifar dan varians unit.

Fungsi rajah membentuk matriks pepenjuru daripada vektor, menyusun unsur sepanjang pepenjuru.

2.5. Pengiraan matriks

MatLab mengandungi banyak fungsi berbeza untuk bekerja dengan matriks. Jadi, sebagai contoh, pemindahan matriks dilakukan menggunakan apostrof "

Matriks songsang didapati menggunakan fungsi inv untuk matriks segi empat sama

3. Mengintegrasikan MatLab dan Excel

Mengintegrasikan MatLab dan Excel membolehkan pengguna Excel mengakses pelbagai fungsi MatLab untuk pemprosesan data, pelbagai pengiraan dan visualisasi hasil. Tambahan excllink.xla melaksanakan sambungan Excel ini. Fungsi khas ditakrifkan untuk komunikasi antara MatLab dan Excel.

3.1. Konfigurasi Excel

Sebelum menyediakan Excel untuk bekerjasama dengan MatLab, anda harus memastikan Pautan Excel disertakan dalam versi MatLab yang dipasang. Dalam subdirektori exclink direktori MatLab utama atau subdirektori kotak alat harus ada fail dengan add-in excllink.xla. Lancarkan Excel dan pilih Tambah dari menu Alat. Kotak dialog muncul yang mengandungi maklumat tentang tambahan yang tersedia pada masa ini. Menggunakan butang Semak imbas, nyatakan laluan ke fail excllink.xla. Baris itu muncul dalam senarai alat tambah dalam kotak dialog Excel Link 2.0 untuk digunakan dengan MatLab dengan set bendera. Klik OK, tambahan yang diperlukan telah ditambahkan pada Excel.

Sila ambil perhatian bahawa Excel kini mempunyai bar alat Pautan Excel yang mengandungi tiga butang: putmatrix, getmatrix, evalstring. Butang ini melaksanakan tindakan asas yang diperlukan untuk melaksanakan hubungan antara Excel dan MatLab - pertukaran data matriks dan pelaksanaan perintah MatLab daripada persekitaran Excel. Apabila Excel dilancarkan semula, add-in excllink.xla disambungkan secara automatik.

Kerja diselaraskan Excel dan MatLab memerlukan beberapa lagi tetapan, yang diterima secara lalai dalam Excel (tetapi boleh diubah). Dalam menu Alat, pergi ke Pilihan, kotak dialog Pilihan dibuka. Pilih tab Umum dan pastikan bahawa bendera gaya rujukan R1C1 dimatikan, i.e. sel bernombor A1, A2, dsb. Pada tab Edit, pilihan Alih selepas Enter mesti ditetapkan.

3.2. Pertukaran data antara MatLab dan Excel

Lancarkan Excel, pastikan semua tetapan yang diperlukan telah dibuat seperti yang diterangkan dalam bahagian sebelumnya (MatLab mesti ditutup). Masukkan matriks dalam sel A1 hingga C3, menggunakan noktah untuk memisahkan tempat perpuluhan seperti yang diperlukan oleh Excel.

Pilih data sel pada helaian dan klik butang putmatrix, tetingkap Excel muncul dengan amaran bahawa MatLab tidak berjalan. Klik OK, tunggu MatLab dibuka.

Kotak dialog Excel muncul dengan baris input untuk menentukan nama pembolehubah meja kerja MatLab yang mana data daripada sel Excel yang dipilih harus dieksport. Contohnya, masukkan M dan tutup tetingkap menggunakan butang OK. Pergi ke tetingkap arahan MatLab dan pastikan pembolehubah M dicipta dalam meja kerja, yang mengandungi tatasusunan tiga demi tiga:

Lakukan beberapa operasi dalam MatLab dengan matriks M, sebagai contoh, terbalikkannya.

Panggil inv Untuk menyongsangkan matriks, seperti mana-mana arahan MatLab yang lain, anda boleh melakukannya terus daripada Excel. Mengklik pada butang evalstring yang terletak pada panel Excel Link menyebabkan kotak dialog muncul, dalam baris input yang mana anda harus menaip perintah MatLab

IM=inv(M) .

Hasilnya adalah serupa dengan yang diperoleh apabila melaksanakan arahan dalam persekitaran MatLab.

Kembali ke Excel, jadikan sel A5 sebagai sel semasa dan klik butang getmatrix. Kotak dialog muncul dengan baris input yang meminta anda memasukkan nama pembolehubah untuk diimport ke dalam Excel. Dalam kes ini, pembolehubah sedemikian ialah IM. Klik OK, sel A5 hingga A7 memasukkan elemen matriks songsang.

Jadi, untuk mengeksport matriks ke MatLab, anda harus memilih sel yang sesuai bagi helaian Excel, dan untuk mengimportnya, anda hanya perlu menentukan satu sel, yang akan menjadi elemen kiri atas tatasusunan yang diimport. Elemen yang selebihnya akan ditulis pada sel lembaran kerja mengikut dimensi tatasusunan, menimpa data yang terkandung di dalamnya, jadi anda harus berhati-hati apabila mengimport tatasusunan.

Pendekatan di atas ialah cara paling mudah untuk bertukar maklumat antara aplikasi - data sumber terkandung dalam Excel, kemudian dieksport ke MatLab, diproses di sana dalam beberapa cara dan hasilnya diimport ke dalam Excel. Pengguna memindahkan data menggunakan butang bar alat Pautan Excel. Maklumat boleh dibentangkan dalam bentuk matriks, i.e. luas segi empat tepat lembaran kerja. Sel yang disusun dalam satu baris atau lajur dieksport, masing-masing, ke vektor baris MatLab dan vektor lajur. Import vektor baris dan vektor lajur ke dalam Excel berlaku dengan cara yang sama.

4. Pengaturcaraan

4.1. M-fail

Bekerja dari baris arahan MatLab menjadi sukar jika anda perlu memasukkan banyak arahan dan menukarnya dengan kerap. Menyimpan diari menggunakan arahan diari dan mengekalkan persekitaran kerja menjadikan kerja lebih mudah. Cara yang paling mudah untuk melaksanakan kumpulan arahan MatLab adalah dengan menggunakan fail-M, di mana anda boleh menaip arahan, melaksanakan semuanya sekaligus atau sebahagian, menyimpannya dalam fail dan menggunakannya kemudian. Editor M-file direka bentuk untuk berfungsi dengan M-files. Dengan bantuannya, anda boleh mencipta fungsi anda sendiri dan memanggilnya, termasuk dari tetingkap arahan.

Kembangkan menu Fail tetingkap MatLab utama dan dalam item Baharu pilih sub-item fail M. Fail baharu dibuka dalam tetingkap editor fail M, yang ditunjukkan dalam rajah.

Terdapat dua jenis fail M dalam MatLab: fail program ( Skrip M-Fail), mengandungi urutan perintah, dan fungsi fail, ( Fungsi M-Fail), yang menerangkan fungsi yang ditentukan pengguna.

4.2. Program fail

Masukkan arahan dalam editor yang membawa kepada pembinaan dua graf pada satu tetingkap grafik

Sekarang simpan fail bernama mydemo.m dalam subdirektori kerja direktori MatLab utama dengan memilih Simpan sebagai daripada menu Fail editor. Untuk menjalankan semua arahan yang terkandung dalam fail, pilih Jalankan daripada menu Nyahpepijat. Tetingkap grafik akan muncul pada skrin Rajah 1, mengandungi graf fungsi.

Program fail mengeluarkan arahan ke tetingkap arahan. Untuk menyekat output, anda mesti menamatkan arahan dengan koma bertitik. Jika ralat dibuat semasa menaip dan MatLab tidak dapat mengecam arahan itu, maka perintah sehingga perintah yang dimasukkan dengan salah akan dilaksanakan, selepas itu mesej ralat dipaparkan dalam tetingkap arahan.

Ciri yang sangat mudah yang disediakan oleh editor M-file ialah pelaksanaan beberapa arahan. Tutup tetingkap grafik Rajah 1. Pilih menggunakan tetikus sambil menahan butang kiri, atau menggunakan kekunci anak panah sambil menahan kekunci Beralih, empat arahan pertama dan laksanakannya daripada item Teks. Sila ambil perhatian bahawa hanya satu graf dipaparkan dalam tetingkap grafik, sepadan dengan arahan yang dilaksanakan. Ingat bahawa untuk melaksanakan beberapa arahan, pilihnya dan tekan kekunci F9.

Blok individu fail M boleh disediakan dengan ulasan, yang dilangkau semasa pelaksanaan, tetapi mudah apabila bekerja dengan fail M. Komen bermula dengan tanda peratus dan diserlahkan secara automatik dalam warna hijau, sebagai contoh:

Membuka fail M sedia ada dilakukan menggunakan item Buka dalam menu Fail persekitaran kerja, atau editor fail M.

4.3. Fungsi fail

Program fail yang dibincangkan di atas hanyalah urutan perintah MatLab; ia tidak mempunyai argumen input atau output. Untuk menggunakan kaedah berangka dan apabila memprogramkan aplikasi anda sendiri dalam MatLab, anda mesti boleh mencipta fungsi fail yang melaksanakan tindakan yang diperlukan dengan argumen input dan mengembalikan hasil tindakan dalam argumen output. Mari lihat beberapa contoh mudah untuk membantu anda memahami cara bekerja dengan fungsi fail.

Apabila prapemprosesan data daripada analisis kemometrik multivariate, pemusatan sering digunakan. Ia masuk akal untuk menulis fungsi fail sekali, dan kemudian memanggilnya di mana-mana pemusatan perlu dilakukan. Buka fail baharu dalam editor fail M dan taip

Fungsi perkataan dalam baris pertama menentukan bahawa fail ini mengandungi fail fungsi. Baris pertama ialah pengepala fungsi, yang mengandungi nama fungsi dan senarai argumen input dan output. Dalam contoh, nama fungsi adalah centering , satu argumen input ialah X dan satu argumen output ialah Xc. Pengepala diikuti dengan ulasan, dan kemudian badan fungsi (dalam contoh ini ia terdiri daripada dua baris), di mana nilainya dikira. Adalah penting bahawa nilai yang dikira ditulis kepada Xc. Jangan lupa untuk menyertakan koma bertitik untuk mengelakkan maklumat yang tidak diperlukan daripada dipaparkan pada skrin. Sekarang simpan fail dalam direktori kerja anda. Sila ambil perhatian bahawa memilih Simpan atau Simpan sebagai daripada menu Fail menyebabkan kotak dialog Simpan Fail muncul, dengan medan Nama fail sudah mengandungi nama yang berpusat . Jangan ubahnya, simpan fail fungsi dalam fail dengan nama yang dicadangkan!

Kini fungsi yang dicipta boleh digunakan dengan cara yang sama seperti dosa terbina dalam, cos dan lain-lain. Fungsi sendiri boleh dipanggil dari program fail dan dari fungsi fail lain. Cuba tulis sendiri fungsi fail yang akan menskalakan matriks, i.e. bahagikan setiap lajur dengan sisihan piawai untuk lajur itu.

Anda boleh menulis fail fungsi dengan beberapa argumen input, yang diletakkan dalam senarai yang dipisahkan koma. Anda juga boleh mencipta fungsi yang mengembalikan berbilang nilai. Untuk melakukan ini, argumen output ditambah, dipisahkan dengan koma, pada senarai argumen output, dan senarai itu sendiri disertakan dalam kurungan segi empat sama. Contoh yang baik ialah fungsi yang menukar masa yang ditentukan dalam saat kepada jam, minit dan saat.

Apabila memanggil fungsi fail dengan berbilang argumen output, hasilnya harus ditulis pada vektor dengan panjang yang sesuai.

4.4 Membuat graf

MatLab mempunyai keupayaan yang luas untuk memaparkan vektor dan matriks secara grafik, serta untuk mencipta ulasan dan mencetak graf. Mari kita terangkan beberapa fungsi grafik yang penting.

Fungsi plot mempunyai pelbagai bentuk yang dikaitkan dengan parameter input, contohnya plot(y) mencipta graf linear sekeping bagi unsur y berbanding indeksnya. Jika dua vektor diberikan sebagai argumen, plot(x,y) akan mencipta graf y lawan x. Sebagai contoh, untuk merancang fungsi sin dalam julat dari 0 hingga 2π, kita melakukan perkara berikut

Program ini telah membina graf pergantungan, yang dipaparkan dalam tetingkap Rajah 1

MatLab secara automatik memberikan warna yang berbeza kepada setiap plot (melainkan pengguna berbuat demikian), membolehkan anda membezakan antara set data.

Pasukan tahan membolehkan anda menambah lengkung pada graf sedia ada. Fungsi subplot membolehkan anda memaparkan berbilang graf dalam satu tetingkap

4.5 Mencetak graf

Item Cetak dalam menu Fail dan arahan cetak mencetak grafik MatLab. Menu Cetak memaparkan kotak dialog yang membolehkan anda memilih pilihan pencetakan standard biasa. Pasukan cetak memberikan fleksibiliti yang lebih besar dalam output dan membenarkan kawalan ke atas pencetakan daripada fail-M. Hasilnya boleh dihantar terus ke pencetak lalai atau disimpan dalam fail tertentu.

5. Contoh program

Bahagian ini menerangkan algoritma yang paling biasa digunakan dalam analisis data berbilang dimensi. Kedua-dua kaedah paling mudah untuk transformasi data - pemusatan dan penskalaan - dan algoritma untuk analisis data - PCA, PLS - dipertimbangkan.

5.1. Pemusatan dan penskalaan

Selalunya semasa analisis adalah perlu untuk mengubah data asal. Kaedah yang paling biasa digunakan untuk mengubah data ialah memusatkan dan menskalakan setiap pembolehubah mengikut sisihan piawainya. Kod fungsi untuk memusatkan matriks telah diberikan. Oleh itu, di bawah ditunjukkan hanya kod fungsi yang penimbang data. Sila ambil perhatian bahawa matriks asal mesti berpusat

fungsi Xs = penskalaan(X)
% penskalaan: matriks keluaran ialah Xs
% matriks X mesti dipusatkan

Xs = X * inv(diag(std(X)));

%akhir penskalaan

5.2. SVD/PCA

Kaedah pemampatan data yang paling popular dalam analisis multivariate ialah analisis komponen utama (PCA). Dari sudut matematik, PCA ialah penguraian matriks asal X, iaitu perwakilannya sebagai hasil darab dua matriks T Dan P

X = TP t+ E

Matriks T dipanggil matriks skor, matriks dipanggil matriks sisa.

Cara paling mudah untuk mencari matriks T Dan P- gunakan penguraian SVD melalui fungsi MatLab standard yang dipanggil svd .

fungsi = pcasvd(X)

Svd(X);
T = U * D;
P=V;

%akhir pcasvd

5.3 PCA/NIPALS

Untuk membina akaun dan pemuatan PCA, algoritma berulang NIPALS digunakan, yang mengira satu komponen pada setiap langkah. Pertama matriks asal X diubah (sekurang-kurangnya - berpusat; lihat) dan bertukar menjadi matriks E 0 , a=0. Seterusnya, algoritma berikut digunakan.

t 2. hlm t = t t Ea / t t t 3. hlm = hlm / (hlm t hlm) ½ 4. t = Ea hlm / hlm t hlm 5. Semak penumpuan, jika tidak, kemudian pergi ke 2

Selepas mengira seterusnya ( a-th) komponen, kami andaikan ta=t Dan hlma=hlm E a+1 = Eat hlm a pada a+1.

Kod untuk algoritma NIPALS boleh ditulis oleh pembaca sendiri; dalam manual ini, penulis membentangkan versi mereka sendiri. Semasa mengira PCA, anda boleh memasukkan bilangan komponen utama (nombor PC berubah). Jika anda tidak tahu berapa banyak komponen yang diperlukan, anda harus menulis = pcanipals (X) pada baris arahan dan kemudian program akan menetapkan bilangan komponen yang sama dengan dimensi terkecil matriks asal. X.

fungsi = pcanipals(X, numberPC)

% pengiraan bilangan komponen
= saiz(X); P=; T=;

Jika lenfth(numberPC) > 0
pc = nomborPC(1);
elseif (panjang(numberPC) == 0) & X_r< X_c
pc = X_r;
lain
pc = X_c;
akhir;

untuk k = 1:pc
P1 = rand(X_c, 1); T1 = X * P1; d0 = T1"*T1;
P1 = (T1" * X/(T1" * T1))"; P1 = P1/norma(P1); T1 = X * P1; d = T1" * T1;

Manakala d - d0 > 0.0001;
P1 = (T1" * X/(T1" * T1)); P1 = P1/norma(P1); T1 = X * P1; d0 = T1"*T1;
P1 = (T1" * X/(T1" * T1)); P1 = P1/norma(P1); T1 = X * P1; d = T1"*T1;
tamat

X = X - T1 * P1; P = kucing(1, P, P1");T = ;
tamat

Cara mengira PCA menggunakan alat tambah Chemometrics diterangkan dalam tutorial

5.4PLS1

Kaedah yang paling popular untuk penentukuran multivariate ialah kaedah Unjuran kepada Struktur Terpendam (PLS). Kaedah ini melibatkan penguraian serentak matriks peramal X dan matriks tindak balas Y:

X=TP t+ E Y=UQ t+ F T=XW(P t W) –1

Unjuran dibina secara konsisten - untuk memaksimumkan korelasi antara vektor yang sepadan X-akaun ta Dan Y-akaun ua. Jika blok data Y termasuk berbilang respons (iaitu K>1), dua unjuran data awal boleh dibina - PLS1 dan PLS2. Dalam kes pertama, untuk setiap jawapan y k subruang unjurannya sendiri dibina. Pada masa yang sama, bil T (U) dan muatan P (W, Q) bergantung pada tindak balas yang digunakan. Pendekatan ini dipanggil PLS1. Untuk kaedah PLS2, hanya satu ruang unjuran dibina, yang biasa kepada semua respons.

Penerangan terperinci tentang kaedah PLS diberikan dalam buku ini. Untuk membina akaun dan pemuatan PLS1, algoritma berulang digunakan. Pertama matriks asal X Dan Y pusat

= mc(X);
= mc(Y);

dan mereka bertukar menjadi matriks E 0 dan vektor f 0 , a=0. Kemudian algoritma berikut digunakan untuk mereka

1. w t = fa t E a 2. w = w / (w t w) ½ 3. t = Ea w 4. q = t t fa / t t t 5. u = qfa / q 2 6. hlm t = t t Ea / t t t

Selepas mengira seterusnya ( a-th) komponen, kami andaikan ta=t Dan hlma=hlm. Untuk mendapatkan komponen seterusnya, anda perlu mengira bakinya E a+1 = Eat hlm t dan gunakan algoritma yang sama kepada mereka, menggantikan indeks a pada a+1.

Berikut ialah kod untuk algoritma ini yang diambil daripada buku

fungsi = pls(x, y)
%PLS: mengira komponen PLS.
%Vektor keluaran ialah w, t, u, q dan p.
%
% Pilih vektor daripada y sebagai vektor permulaan u.

u = y(:, 1);

% Kriteria penumpuan ditetapkan sangat tinggi.
kri = 100;

% Arahan dari sini hingga akhir diulang sehingga penumpuan.
manakala (kri > 1e - 10)

% Setiap vektor permulaan u disimpan sebagai uold.
uold = u; w = (u" * x)"; w = w/norm(w);
t = x * w; q = (t" * y)"/(t" * t);
u = y * q/(q" * q);

% Kriteria penumpuan ialah norma u-uold dibahagikan dengan norma u.
kri = norma(uold - u)/norm(u);
akhir;

% Selepas penumpuan, hitung p.
p = (t" * x)"/(t" * t);

%Tamat sila

Mengenai pengiraan PLS1 menggunakan tambahan KimometrikTambahkan diterangkan dalam kaedah Unjuran manual dalam Excel.

5.5PLS2

Untuk PLS2 algoritma adalah seperti berikut. Pertama matriks asal X Dan Y berubah (sekurang-kurangnya - pusat; lihat), dan mereka bertukar menjadi matriks E 0 dan F 0 , a=0. Kemudian algoritma berikut digunakan untuk mereka.

1. Pilih vektor awal u 2. w t = u t E a 3. w = w / (w t w) ½ 4. t = Ea w 5. q t = t t Fa / t t t 6. u = Fa q/ q t q 7. Periksa penumpuan, jika tidak, kemudian pergi ke 2 8. hlm t = t t Ea / t t t

Selepas mengira seterusnya ( a oh) Komponen PLS2 perlu diletakkan: ta=t, hlma=p,wa=w, ua=u Dan q a = q. Untuk mendapatkan komponen seterusnya, anda perlu mengira bakinya E a+1 = Eatp t dan Fa +1 = F atq t dan gunakan algoritma yang sama kepada mereka, menggantikan indeks a pada a+1.

Berikut ialah kod, yang juga dipinjam daripada buku.

fungsi = plsr(x, y, a)
% PLS: mengira komponen PLS.
% Matriks keluaran ialah W, T, U, Q dan P.
% B mengandungi pekali regresi dan SS hasil tambah
% kuasa dua untuk sisa.
% a ialah bilangan komponen.
%
% Untuk komponen: gunakan semua arahan untuk menamatkan.

Untuk i=1:a
% Kira jumlah kuasa dua. Gunakan fungsi ss.
sx = ;
sy = ;

% Gunakan fungsi pls untuk mengira satu komponen.
= pls(x, y);

% Kira baki.
x = x - t * p";
y = y - t * q";

% Simpan vektor dalam matriks.
W = ;
T = ;
U = ;
Q = ;
P = ;
akhir;

% Kira pekali regresi selepas gelung.
B=W*inv(P"*W)*Q";

% Tambah baki SS akhir kepada jumlah vektor kuasa dua.
sx=;
sy=;

% Buat matriks bagi vektor ss untuk X dan Y.
SS = ;

% Kira pecahan SS yang digunakan.
= saiz(SS);
tt = (SS * rajah(SS(1,:).^(-1)) - satu(a, b)) * (-1)

%Tamat plsr

fungsi = ss(x)
%SS: mengira jumlah kuasa dua bagi matriks X.
%

ss=jumlah(jumlah(x. * x));
%Tamat ss

Mengenai pengiraan PLS2 menggunakan tambahan KimometrikTambahkan diterangkan dalam kaedah Unjuran manual dalam Excel.

Kesimpulan

MatLab ialah alat yang sangat popular untuk analisis data. Menurut tinjauan, sehingga satu pertiga daripada semua penyelidik menggunakannya, manakala program Unsrambler hanya digunakan oleh 16% saintis. Kelemahan utama MatLab ialah harganya yang tinggi. Selain itu, MatLab bagus untuk pengiraan rutin. Kekurangan interaktiviti menjadikannya menyusahkan apabila melakukan carian, pengiraan penyelidikan untuk set data baharu yang belum diterokai.