matlab 编程遇到的问题

来源:互联网 发布:管理日程的软件 编辑:程序博客网 时间:2024/06/05 06:36

hb2 = uicontrol('Parent',hf,'Units','Normalized',...
     'Position',[0.1 0.1 0.2 0.65],'String','拍照',...
     'Callback','imwrite(getsnapshot(obj),''im.jpg'')');

Error using imwrite(getsnapshot(obj),'im.jpg')
Error: The input character is not valid in MATLAB statements or expressions.
 
Error while evaluating uicontrol Callback


最后的反括弧用了全角,改成半角的

(obj)----》 (obj)


捕捉视频,拍照后,是另一种色度空间的, 不是原来的颜色


matlab if 条件句中,不能用连不等式做判断   如 if(25<a<78)   括号里只判断后半部分如果为真,则返回真


列向量要存到 矩阵的某一列中,,不能存到行里 


调整格式   repmat(value,row,col)



将结构体 成员赋值为字符串  

 unRecognitionData.Name(unRecognitionDataNum) = dataFile;

一直错误  

Subscripted assignment dimension mismatch.

Name{unRecognitionDataNum} = dataFile;       % 字符串数组需要存在 单元里面 ,用大括号赋值 ,存结构体数组 一直失败


若默认invariant_moment= 0  ,赋值时候要具体指定 行数列数

%          否则默认是1列

aaa =
     0
>> aaa(2,:)=2


aaa =
     0
     2


>> aaa=0
aaa =

     0


>> aaa(2,:)=[ 2 2 3]
Subscripted assignment dimension mismatch.
 
>> aaa(2,:)=[ 2 2]
Subscripted assignment dimension mismatch.
 
>> aaa(2,:)=[ 2]


aaa =

     0
     2


>> aaa=0
aaa =
     0
>> aaa(2,1:2)=[2 2]

aaa =
     0     0
     2     2


   featureMoveStatic(processedFrameNum,1:12) = max(featureMove);   %将列最大值 赋值给前一个矩阵

%注意max(featureMove) 这样是有漏洞的,当featureMove只有一维时,max得到是整体的最值,是一个值 然后赋值给前面的

   featureMoveStatic(processedFrameNum,1:12) = max(featureMove,1);  


>> rand(1,3)
ans =
    0.9649    0.1576    0.9706

>> ddddd(2,1:4)=max(ans)
ddddd =
         0         0         0         0
    0.9706    0.9706    0.9706    0.9706





Examples

Return the maximum of a 2-by-3 matrix from each column:
X = [2 8 4; 7 3 9];
max(X,[],1)
ans =
     7     8     9


Return the maximum from each row:
max(X,[],2)
ans =
     8
     9

Compare each element of X to a scalar:
max(X,5)
ans =
     5     8     5
     7     5     9


mean  1,,求列均值   2、求行均值
Examples    

A = [1 2 3; 3 3 6; 4 6 8; 4 7 7];
mean(A)
ans =
    3.0000    4.5000    6.0000

mean(A,2) 
ans =
    2.0000
    4.0000
    6.0000
    6.0000


matlab矩阵相乘得出1.0e+004* 的意思:


得到的数值太大,因此用科学计数法表示了,1.0e+004就是10的4次方,也就是说,你结果里所有的数值,最后都要乘以10000,才是真正的值 如果你不希望用科学计数法表示结果,就在命令窗里输入format long g就可以了

0 0
原创粉丝点击