2014-09-22 4 views
3

Я пытаюсь использовать MATLAB для создания очень простой задачи Stroop, где участники должны решить, какой цвет будет напечатан на экране. По какой-то причине слова всегда обрезаются независимо от того, насколько большой или маленький шрифт.Как предотвратить появление текста на рисунках?

enter image description here

Я использовал следующий код, чтобы установить размер фигуры:

h = figure('Position', [1, 1, 1200, 800]); 
set(h, 'NumberTitle', 'off', ... 
     'Name', 'Stroop Test', ... 
     'Color', 'black', ... 
     'MenuBar','none', ... 
     'ToolBar', 'none'); 

Для отображения реальных стимулов слово, я использовал следующий код:

ht = show_text(h, lang.words(iNoise),... 
       'FontSize', 60,... 
       'ForegroundColor', lang.colors{iStimul}); 

Добавлено:

function handle = show_text(parrent, string, varargin) 

parpos = get(parrent, 'Position'); 
pos = [5 round(parpos(4)/2)-30 parpos(3)-10 60]; 

handle = uicontrol(parrent,... 
    'Style','Text',... 
    'BackgroundColor', 'black',... 
    'ForegroundColor', 'white',... 
    'Position', pos,... 
    'FontUnits', 'pixels'); 

if length(varargin) > 0, set(handle, varargin{:}), end; 
fontsize = get(handle, 'FontSize'); 

[outstring,newpos] = textwrap(handle,string); 
height = length(outstring) * 1.1 * fontsize; 
pos = [5 round(parpos(4)/2)-round(height/2) parpos(3)-10 height]; 
set(handle,'String',outstring,'Position', pos); 
drawnow; 

end 

Если кто-то может сказать мне, в чем проблема, это было бы здорово.

+0

Не могли бы вы показать нам, что находится в функции 'show_text', это настраиваемая функция? –

+0

oops, забыли включить это! Просто добавьте его – Alex

+0

При необходимости я могу включить ссылки на реальные сценарии – Alex

ответ

1

Что произойдет, если вы компенсировать height переменные в функции show_text по большему произвольному фактору, как это:

height = length(outstring) * 1.5 * font size; 

Вместо 1.1? Попробуйте 2.

+0

Большое вам спасибо! – Alex

+1

@Alex вы очень желанны, это было легко :-) –

1

Не является прямым ответом на ваш вопрос, но я настоятельно рекомендую PsychToolbox для этого ... Есть много проблем с использованием MatLab фигуры для экспериментов ...

Проблемы вы описываете только один из многих, и именно поэтому были написаны PsychToolbox, cogent и т. д., и они упрощают кодирование такого рода задач.

Смежные вопросы