Katakanlah saya memiliki array sel
strs = {'HA' 'KU' 'LA' 'MA' 'TATA'}
Apa yang harus saya lakukan jika saya ingin mencari indeks 'KU'
?
string
matlab
cell-array
Benjamin
sumber
sumber
Jawaban:
Saya kira kode berikut bisa melakukan triknya:
Ini kembali
sumber
Waktu yang berlalu adalah 0,001976 detik.
Waktu yang berlalu adalah 0,000014 detik.
JADI, jelas
strcmp('KU', strs)
membutuhkan waktu yang jauh lebih sedikit daripadaismember(strs,'KU')
sumber
Sejak 2011a, cara yang direkomendasikan adalah:
Jika Anda ingin mendapatkan indeks integer (yang seringkali tidak Anda perlukan), Anda dapat menggunakan:
strfind
sudah usang, jadi cobalah untuk tidak menggunakannya.sumber
Saya melihat bahwa semua orang melewatkan kesalahan terpenting dalam kode Anda:
seharusnya:
atau
Sekarang jika Anda tetap menggunakan
Anda tidak akan khawatir :).
sumber
Jawaban lain mungkin lebih sederhana untuk kasus ini, tetapi untuk kelengkapan saya pikir saya akan menambahkan penggunaan cellfun dengan fungsi anonim
yang memiliki keuntungan bahwa Anda dapat dengan mudah membuatnya tidak peka huruf besar / kecil atau menggunakannya dalam kasus di mana Anda memiliki susunan sel struktur:
sumber
Kode terpendek:
Tapi itu hanya mengembalikan posisi pertama
strs
. Jika elemen tidak ditemukan makaind=0
.sumber
Fungsi strcmp dan strcmpi adalah cara paling langsung untuk melakukan ini. Mereka mencari melalui array.
sumber
apakah kamu sudah mencoba
lihat link
kalau tidak,
juga harus bekerja jika saya tidak salah.
sumber