MATLAB: Mengonversi dari for loop, ke no loop

Saya memiliki fungsi yang disediakan oleh instruktur, yang tidak tersedia bagi kita untuk melihat cara kerja bagian dalamnya.

Fungsi ini pada dasarnya mengintegrasikan apa pun yang Anda masukkan.

Inilah putaran kami:

for i = 1:length(time)-1
    intdefValues(i) = intdef(t, r, time(i), time(i+1));
end

Kami mencoba melakukan ini:

intdefValues = intdef(t, r, time(1:end-1), time(2:end));

Apakah kita salah? Apakah fungsinya tidak mendukung vektor?

Sintaks untuk fungsi tersebut jika Anda penasaran;

intdef(t, x, a, b)

Dimana t = vektor waktu, x = fungsi, dan a,b adalah parameter awal/akhir.


person Josh Beckwith    schedule 05.10.2014    source sumber
comment
ketika Anda mencoba tanpa loop, apakah fungsi memberikan kesalahan?   -  person Autonomous    schedule 06.10.2014
comment
Apakah kita salah? Apakah fungsi tersebut tidak mendukung vektor? Ya, fungsi tersebut hanya menerima skalar, bukan vektor, sebagai masukan. Untuk memastikannya, Anda harus menanyakan detail lebih lanjut kepada instruktur Anda tentang sintaksis fungsi yang dimaksud. Atau seperti yang disarankan @ParagS.Chandakkar, coba masukkan vektor, dan lihat apakah Anda mendapatkan kesalahan.   -  person jub0bs    schedule 06.10.2014
comment
Selain itu, meskipun Anda menemukan cara untuk mengumpankan vektor, hal itu mungkin tidak membuat program berjalan lebih cepat karena Anda mengubah cara kerja fungsi intdef(). Jadi mungkin tidak ada gunanya menyelidikinya.   -  person Autonomous    schedule 06.10.2014


Jawaban (1)


person    schedule
comment
Bagaimana ini menjawab pertanyaan tersebut? - person jub0bs; 06.10.2014
comment
@Jubobs Benar, pengujian kotak hitam (karena OP menyatakan masalahnya) bukanlah bidang untuk dapat menjawab pertanyaan Anda secara langsung. Baik kami maupun OP tidak mengetahui detail implementasi fungsi. Namun demikian, bahkan pengujian kotak hitam mungkin secara tidak langsung membuktikan dilema PASS/FAIL, apakah fungsinya (seperti banyak LIB yang dirancang dengan baik/disesuaikan kinerjanya) dirancang secara internal untuk mendukung modus operandi yang diverifikasi, atau tidak. - person user3666197; 06.10.2014