初学matlab 小问题自己看matlab,看到这一段有一句不太明白.>> x='MATLAB is a good so

初学matlab 小问题
自己看matlab,看到这一段有一句不太明白.
>> x='MATLAB is a good software'
x =
MATLAB is a good software
>> ascii_x=double(x)
ascii_x =
Columns 1 through 17
77 65 84 76 65 66 32 105 115 32 97 32 103 111 111 100 32
Columns 18 through 25
115 111 102 116 119 97 114 101
>> xxx=find(x>='a'&x> ascii_x(xxx)=ascii_x(xxx)-32; %就这一句不明白啊
>> char(ascii_x)
ans =
MATLAB IS A GOOD SOFTWARE
功能就是把字符串中小写字母改变为大写字母.
问题是:
ascii_x(xxx)=ascii_x(xxx)-32; 这一句
我知道这句要实现的功能,
这一句似乎是把 ascii_x 当函数来用了,是不是?要不然后面怎么带括号啊?
但在这之前,ascii_x 明明是变量啊!
如果是函数,为什么,是定义的新函数?
细一想,double(x) 这种习惯似乎和C不一样,求大神也解释一下.
bluefire88888 1年前 已收到1个回答 举报

zhuwen1982 幼苗

共回答了22个问题采纳率:86.4% 举报

ascii_x=double(x)
这里ascii_x是一个数值型向量
xxx=find(x>='a'&x

1年前 追问

6

bluefire88888 举报

刚想到,
似乎 double()就不是函数吧? (不知对不对?)
这里的 double() 和 ascii_x() 的作用感觉有点像啊。
是不是matlab的函数和C的函数理解起来不太一样?
(我只学过C,只能拿C相比了)

举报 zhuwen1982

double()是函数,将字符转化为ASC码
ascii_x()这个不是函数
举个例子
a=[1 2 3 4];
a(2)就是表示引用a的第二元素 输出结果为2

bluefire88888 举报

现在真明白了,ascii_x表示的是数组啊。
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.034 s. - webmaster@yulucn.com