Colon operator

Hi! I keep getting the error "For colon operator with char operands, first and last operands must be char". with the line "for i=1:block", where block=9.
The code I'm using is as follows:
function reach_reward2(subj_num,name,block)
filename = 'C:\Users\Elizabeth\Documents\MATLAB Files\Experiment Data\' subj_num];
cd (filename)
dat=['RT1_' name '.dat'];
Data2=dload(dat);
file = [subj_num '_' name];
for i=1:block %block
num = ['1' '2' '3' '4' '5' '6' '7' '8' '9'];
subj = ['RT1_' name '_' num(i) '.mov'];
Data = movload(subj);
combined_data = [];
and so on..
I'm confused as to what I'm doing wrong?

댓글 수: 2

Sean de Wolski
Sean de Wolski 2012년 4월 13일
what is block?
Walter Roberson
Walter Roberson 2012년 4월 13일
If block was a character you would get that error.

댓글을 달려면 로그인하십시오.

답변 (2개)

Vaibhav
Vaibhav 2012년 4월 13일

0 개 추천

You have to initialize block as a number such as 20 or 30 or whatever.
Jan
Jan 2012년 4월 13일

0 개 추천

The error message looks like block is a string - a char vector. How do you call this function?
BTW, this is not efficient:
num = ['1' '2' '3' '4' '5' '6' '7' '8' '9'];
Better:
num = '123456789';
But the repeated definition inside the loop wastes time also. It is a good programming practize to move all repeated operations out of the loop.
Most likely sprintf('%d', i) is even better to create the number as string.

카테고리

도움말 센터File Exchange에서 Characters and Strings에 대해 자세히 알아보기

질문:

2012년 4월 13일

Community Treasure Hunt

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

Start Hunting!

Translated by