Filter löschen
Filter löschen

Info

Diese Frage ist geschlossen. Öffnen Sie sie erneut, um sie zu bearbeiten oder zu beantworten.

Error inside the function,"Struct contents reference from a non-struct array object"?

1 Ansicht (letzte 30 Tage)
arun
arun am 10 Jan. 2017
Geschlossen: MATLAB Answer Bot am 20 Aug. 2021
Error in split_train_test (line 11) idx_label = find(dataset.label == i);
tr_num = 240;
field = 'label';
value = {tottrainlabel};
dataset = struct(field,value);
class_num = length(unique(dataset.label));
fr_dat_split = split_train_test(F, tr_num,class_num);
function dataset_split = split_train_test(dataset, tr_num, class_num)
if nargin < 3
class_num = length(unique(dataset.label));
end
tr_idx = [];
tt_idx = [];
for i = 1 : class_num
idx_label = find(dataset.label == i);
num = length(idx_label);
idx_rand = randperm(num);
tr_idx = [tr_idx idx_label(idx_rand(1 : tr_num))];
tt_idx = [tt_idx idx_label(idx_rand(tr_num+1 : end))];
end

Antworten (1)

Walter Roberson
Walter Roberson am 10 Jan. 2017
Your call
fr_dat_split = split_train_test(F, tr_num, class_num);
is not passing the dataset into the function: it is passing some other variable, F instead. F is not a structure, whatever it is.
  2 Kommentare
arun
arun am 10 Jan. 2017
I made the changes you told, but the function produces another error
Index exceeds matrix dimensions.
Error in split_train_test (line 15)
tr_idx = [tr_idx idx_label(idx_rand(1 : tr_num))];
Walter Roberson
Walter Roberson am 10 Jan. 2017
Some of your classes do not have as many as 240 samples.

Diese Frage ist geschlossen.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by