de-vraag
  • Pertanyaan
  • Tag
  • Pengguna
Notifikasi
Imbalan
Registrasi
Setelah Anda mendaftar, Anda akan diberitahu tentang balasan dan komentar untuk pertanyaan Anda.
Gabung
Jika Anda sudah memiliki akun, masuk untuk memeriksa pemberitahuan baru.
Akan ada hadiah untuk pertanyaan, jawaban, dan komentar tambahan.
Lebih
Sumber
Sunting
Pengguna anonim
Question

Kesalahan MATLAB: Fungsi atau metode X yang tidak terdefinisi untuk argumen input bertipe 'double'

Saya pengguna baru Matlab, bisakah Anda membantu:
Saya memiliki kode berikut dalam file .M:

function f = divrat(w, C)
S=sqrt(diag(diag(C)));
s=diag(S);
f=sqrt(w'*C*w)/(w'*s);

Saya telah menyimpan file ini (divrat.M) di jalur Matlab normal, dan oleh karena itu saya mengasumsikan bahwa Matlab akan membaca fungsi ini ketika mulai dan fungsi ini harus tersedia untuk digunakan.

Namun, ketika saya mengetik

>> divrat(w, C)

Saya mendapatkan kesalahan berikut

???? Fungsi atau metode yang tidak terdefinisi 'divrat' untuk argumen input bertipe 'double'.

Apa pesan kesalahan yang menyuruh saya untuk melakukan, saya tidak dapat melihat kesalahan apa pun dalam kode atau panggilan fungsi?

19 2008-10-13T12:38:38+00:00 3
 Shai
Shai
Pertanyaan edit 25 April 2013 в 6:28
Pemrograman
matlab
function
Pertanyaan ini memiliki :value jawaban dalam bahasa Inggris, untuk membacanya masuk ke akun Anda.
 hakan
hakan
13 Oktober 2008 в 1:11
2008-10-13T13:11:21+00:00
Lebih
Sumber
Sunting
#8560125

Kode kesalahan menunjukkan definisi fungsi tidak dapat ditemukan. Pastikan anda memanggil fungsi dari ruang kerja yang sama dengan file divrat.m yang disimpan. Dan pastikan fungsi divrat bukan subfungsi, harusnya deklarasi fungsi pertama dalam file. Anda juga dapat mencoba memanggil fungsi dari file divrat.m yang sama untuk melihat apakah masalahnya ada pada pemilihan ruang kerja atau fungsinya.

Ngomong-ngomong, mengapa anda tidak mengatakan

s = sqrt(diag(C));

Bukankah itu sama saja?

 Yamaneko
Yamaneko
Jawaban edit 11 Januari 2013 в 4:45
2
0
Mr Fooz
Mr Fooz
13 Oktober 2008 в 1:40
2008-10-13T13:40:18+00:00
Lebih
Sumber
Sunting
#8560126

Juga, beri nama divrat.m, bukan divrat.M. Hal ini seharusnya tidak menjadi masalah pada kebanyakan OS, tetapi siapa tahu...

Anda juga bisa menguji apakah matlab bisa menemukan sebuah fungsi dengan menggunakan perintah which, yaitu

which divrat
 Yamaneko
Yamaneko
Jawaban edit 11 Januari 2013 в 4:45
2
0
 bastibe
bastibe
18 Oktober 2008 в 12:41
2008-10-18T00:41:03+00:00
Lebih
Sumber
Sunting
#8560127

Fungsi itu sendiri adalah kode matlab yang valid. Masalahnya pasti sesuatu yang lain.
Coba panggil fungsi tersebut dari dalam direktori tempat fungsi itu berada atau tambahkan direktori tersebut ke dalam searchpath anda menggunakan addpath('pathname').

2
0
Tambahkan pertanyaan
Kategori
Semua
Teknologi
Budaya / Rekreasi
Kehidupan / Seni
Ilmu Pengetahuan
Profesional
Bisnis
Pengguna
Semua
Baru
Populer
1
Asilbek Qadamboyev
Terdaftar 8 jam yang lalu
2
Akshit Mehta
Terdaftar 2 hari yang lalu
3
me you
Terdaftar 6 hari yang lalu
4
Никита иванов
Terdaftar 1 minggu yang lalu
5
Alex1976G_06
Terdaftar 1 minggu yang lalu
ID
JA
RU
© de-vraag 2022
Sumber
stackoverflow.com
di bawah lisensi cc by-sa 3.0 dengan atribusi