matlab下载中inread命令显示的数字是什么

matlab中关于nc文件的一些主要命令
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。matlab笔记&MATLAB打开后命令行警告
安装MATLAB(版本为R2010b)后,打开时很慢,打开后初始化进入ready状态,命令行每次都出现警告(warning)如下:
Warning: D:\Program
Files\MATLAB\R2010b\toolbox\local\pathdef.m not found.
Toolbox Path Cache is not being used. Type 'help
toolbox_path_cache' for more info
Undefined function or variable 'ispc'.
Warning: MATLAB did not appear to successfully set the search path.
To recover for this session of
MATLAB, type "matlabrc". To find out how to
avoid this warning the next time you
start MATLAB, type "docsearch problem path" after recovering for
this session.
Warning: Duplicate directory name: D:\Program
Files\MATLAB\R2010b\toolbox\local.
Warning: Initializing Handle Graphics failed in matlabrc.
This indicates a potentially serious problem in your MATLAB
which should be resolved as soon as possible.&
Error detected was:
MATLAB:UndefinedFunction
Undefined function or method 'colordef' for input arguments of type
& In matlabrc at 100
Warning: Initializing Java preferences failed in matlabrc.
This indicates a potentially serious problem in your MATLAB
which should be resolved as soon as possible.&
Error detected was:
MATLAB:UndefinedFunction
Undefined function or method 'usejava' for input arguments of type
& In matlabrc at 123
Warning: Failed to add default profiler filters.
& In matlabrc at 179
我的主要出现下面情况:
Initializing Handle Graphics failed in matlabrc.
This indicates a potentially serious problem in your MATLAB
which should be resolved as soon as possible.&
Error detected was:
MATLAB:scriptNotAFunction
Attempt to execute SCRIPT dot as a function:
C:\Users\lenovo\Documents\MATLAB\dot.m
在网上搜了一下,解决的办法如下:
1. 在matlab的command里输入:
matlabrc. 回车等待执行完毕.
2. cd到'你的安装目录'\MATLAB\R2011b\toolbox\local.
3. 执行命令 "savepath pathdef.m".
该问题得到解决, 再次启动MATLAB不会再出现该Warning.
希望能给遇到相关情况的的朋友们指点指点。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。13584人阅读
一、System.in(最笨的方法)
首先看jdk的API.
System的静态方法in返回的是一个InputStream类型的对象,则我们可以用读取输入流的方式对其进行读取。
按API的说法“此流已打开并准备提供输入数据。通常,此流对应于键盘输入或者由主机环境或用户指定的另一个输入源。”键盘上按下的任何一个键都会被当做是输入值。
如何回显输入值?
我们就用读取输入流的方式进行读取,还是看API
InputStream包含方法read();read(byte[] b);read(byte[] b, int off, int len) ;
1、read();
看API从输入流中读取数据的下一个字节。返回 0 到 255 范围内的 int 字节值。
返回一个整型字节数据,该数据表示的是字节因此是Unicode的第一个字节或是字符的ASCII码值。该方法是从一个流中一个一个的读取数据,因此是一个迭代的过程。
如果到达流的末尾,则返回 -1
重复调用System.in.read()实际上是在遍历该流中的每一个字节数据。最常见的流是键盘输入流。以下为例:
import java.io.IOE
public class Test1 {
public static void main(String[] args) throws IOException {
System.out.println(&请输入:&);
int i = 0;
while(i!=-1){//读取输入流中的字节直到流的末尾返回1
i = System.in.read();
System.out.println(i);
&如图我们输入ABCD则返回了其ASCII值 & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &如果System.out.println(i);改为System.out.println((char)i);强制转换为char字符,则输出ABCD
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & &
这里的13和10是读取的键盘的回车,我们在键盘上按一下回车键,实际上读取到的是两个字符,即“\r”(13)和“\n”(10)。字符“\r”表示回车,即光标回到当前行的行首而不换行;字符“\n”表示换行,即光标移到当前行的下一行行首。
(这里还要PS下回车的来历:
回车 \r 本义是光标重新回到本行开头,r的英文return,控制字符可以写成CR,即Carriage Return
换行 \n 本义是光标往下一行(不一定到下一行行首),n的英文newline,控制字符可以写成LF,即Line Feed
在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。
后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。
/*======================================*/
UNIX 系统行末结束符
\n\r: window 系统行末结束符
MAC OS 系统行末结束符
/*======================================*/
一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号有兴趣可以去查看相关资料
这里还有一个小情况,看下面的小例子
import java.io.IOE
public class Test2 {
public static void main(String[] args) throws IOException {
System.out.println(&请输入:&);
char ch = (char)System.in.read();
System.out.println(&hello& + ch + &AB&);
}很明显这是只读取一个字符,然后插入到字符串“hello”和“AB”之间,我们无论输入1个字符还是多个字符都是只读取第一个字符,如输入“UFO”
打印出“helloUAB”但我们不输入任何值只按一个回车时,在cmd命令窗口与IDE工具(eclipse)输出就不一样了,如下图:
cmd命令行,编译运行结果 & & & & & & & & & & & & & & & & & & &eclipse运行结果输入“UFO” 和只按回车两种情况
&我们可以注意到输入其它字符的运行结果一样,直接按回车的话,cmd下打印出的是&ABllo&,也就是说cmd回车(获得两个字符“\r”和“\n”),只读取了第一个字符“\r”,即将光标放到行首不换行,所以导致了覆盖hello,那为什么在IDE工具(eclipse)下也是只读取了回车,却换行了呢,这应该是eclipse将回车与换行是连用的,无论是System.out.print(&a\rb&);System.out.print(&a\nb&);还是System.out.print(&a\r\nb&);输出都是a回车b.此句系本人杜撰,大家可以亲试核实。好了read()就说这些了
2、read(byte[] b)
API里InputStream的read(byte[] b)同样是返回一个int值,但此处的用法跟read()完全不一样。此处是从输入流中读取一定数量的字节,并将其存储在缓冲区数组b 中。以整数形式返回实际读取的字节数
如果 b 的长度为 0,则不读取任何字节并返回 0;否则,尝试读取至少一个字节。如果因为流位于文件末尾而没有可用的字节,则返回值-1;否则,至少读取一个字节并将其存储在b 中。
将读取的第一个字节存储在元素 b[0] 中,下一个存储在 b[1] 中,依次类推。读取的字节数最多等于
b 的长度。设 k 为实际读取的字节数;这些字节将存储在 b[0] 到 b[k-1] 的元素中,不影响b[k] 到b[b.length-1] 的元素。&
此时我们有了byte数组,有了返回的字节数,就可以用String的构造方法String(byte[]&bytes, int&offset, int&length)&:& & &通过使用平台的默认字符集解码指定的 byte 子数组,构造一个新的String。即可返回键盘的输入
public class TestInput1 {
public static void main(String[] args) {
//提示信息
System.out.println(&请输入:&);
//数组缓冲
byte[] b = new byte[1024];
//读取数据
int n = System.in.read(b);
//转换为字符串
String s = new String(b,0,n);
//回显内容
System.out.println(&输入内容为:& + s);
}catch(Exception e){}
这里斟酌通过使用平台的默认字符集解码指定的 byte 子数组,构造一个新的&String。这句话,我亲自核实,此TestInput1.Java的编码格式为utf-8非本地默认编码格式时(我们国内的电脑默认编码GB2312),输出到控制台会是乱码,而改为GB2312时则正确输出,已证实。
还有一句...不影响&b[k]&到&b[b.length-1]&的元素。我们也可以试试,将以上代码略作改动如下:
public class TestInput1 {
public static void main(String[] args) {
//提示信息
System.out.println(&请输入:&);
//数组缓冲
byte[] b = new byte[1024];
//假设我们已知道键盘输入的是ABCD加回车是6个字符,我们将b[0]到b[9]分别提前赋值
for (int i = 0; i & 10; i++) {//这里b[0]-b[9]分别赋值a-j
b[i] = (byte)(97+i);//a的ascii值为97
//读取数据
int n = System.in.read(b);
//转换为字符串
//这次我们构造String为了输出byte数组的所有值,所以不再用返回的值n而用我们预知的10个
String s = new String(b,0,10);
//回显内容
System.out.println(&输入内容为:& + s);
}catch(Exception e){}
这次我们打印到控制台的是:
&很明显原本应该输出的是abcdefghij经过读取键盘输入后,影响了n=6个字节,4个字母加回车的“\r”“\n”此句也证实了回车确实是两个字符。
3、read(byte[] b, int&off, int&len)
和上面类似但读取的长度,位置做了限定API如下:
将输入流中最多 len 个数据字节读入 byte 数组。尝试读取 len 个字节,但读取的字节也可能小于该值。以整数形式返回实际读取的字节数
将读取的第一个字节存储在元素 b[off] 中,下一个存储在 b[off+1] 中,依次类推。读取的字节数最多等于len。设k 为实际读取的字节数;这些字节将存储在
b[off] 到 b[off+k-1] 的元素中,不影响b[off+k] 到b[off+len-1] 的元素。&
同样拿上面的abcdefghij做个例子仅仅将上一个例子的int n = System.in.read(b);改为int n = System.in.read(b,3,4);则意思的,将读取的第一个字节存储在b[3]依次最多存储4个,这时我们再次运行,还是输入ABCD,刚好4个,错还有回车两个,输出的控制台是:
很明显b[3],b[4],b[5],b[6]处的字符defg被读入的4个字符覆盖,而且是只读取了4个,没有回车。
本来是要说JAVA从控制台输入数据的方法,结果扯了这么多,现在说说第二个方法:
二、java.util.Scanner
从 JDK 5.0 开始,基本类库中增加了java.util.Scanner类,使用它的Scanner(InputStream source)构造方法,可以传入系统的输入流System.in而从控制台中读取数据。当通过new Scanner(System.in)创建一个Scanner,控制台会一直等待输入,直到敲回车键结束,把所输入的内容传给Scanner,作为扫描对象。如果要获取输入的内容,则只需要调用Scanner的nextLine()方法即可。
import java.util.S
public class TestSc {
public static void main(String[] args) {
System.out.println(&请输入:&);
Scanner sc = new Scanner(System.in);
System.out.println(sc.nextLine());
}输出到控制台即是你键入的字符串,这里不做演示,关键说下Scanner的next(),nextLine();
1、nextLine();
API此扫描器执行当前行,并返回跳过的输入信息。 此方法返回当前行的其余部分,不包括结尾处的行分隔符。意思就是读出当前下标的一行,对它来讲每行就是他的分隔符。如上例子中的末尾System.out.println(sc.nextLine());改为System.out.println(&hello&+sc.nextLine()+&ufo&);
输入“ABCD”打印到控制台为“helloABCDufo”回车并没有被输出。比较来说此方法更简洁实用,其实是Scanner对System.in做了封装处理。
2、next();
查找并返回来自此扫描器的下一个完整标记。完整标记的前后是与分隔模式匹配的输入信息,Scanner默认使用空格作为分割符来分隔文本,但允许你指定新的分隔符如下例:
import java.util.S
public class TestSc {
public static void main(String[] args) {
Scanner sc = new Scanner(&aa bb cc,dd,ee&);
//sc.useDelimiter(&,&);
while (sc.hasNext()) {
System.out.println(sc.next());
将空格做分隔符输出结果为: & & & & & & &将注释去掉,试用逗号做分隔符输出为:
& Scanner的更多方法资料可以自己去查阅学习。
继续JAVA从控制台输入数据的方法
三、java.io.Console
从 JDK 6.0 开始,基本类库中增加了java.io.Console类,用于获得与当前 Java 虚拟机关联的基于字符的控制台设备。在纯字符的控制台界面下,可以更加方便地读取数据
import java.io.C
public class TestSc {
public static void main(String[] args) {
System.out.println(&请输入&);
Console cs = System.console();
if (cs == null) {
throw new IllegalStateException(&不能使用控制台&);
System.out.println(cs.readLine());
值得一提的是此方法只是在cmd命令窗口可以得到Console实例顺利运行,在IDE工具下如eclipse下得不到Console实例的,cs==null无法实现输入。
API中解释:
虚拟机是否具有控制台取决于底层平台,还取决于调用虚拟机的方式。如果虚拟机从一个交互式命令行开始启动,且没有重定向标准输入和输出流,那么其控制台将存在,并且通常连接到键盘并从虚拟机启动的地方显示。如果虚拟机是自动启动的(例如,由后台作业调度程序启动),那么它通常没有控制台。
如果此虚拟机具有控制台,那么它将由此类唯一的实例(可通过调用
方法获得)表示。如果没有可用的控制台设备,那么对该方法的调用将返回null。
所以在 IDE 的环境下,重新定向了标准输入和输出流,也是就是将系统控制台上的输入输出重定向到了 IDE 的控制台中。因此,在 IDE 中不能使用这个程序。
继续正题,JAVA从控制台输入数据的方法
四、BufferedReader
其实也是用的IO流这个就不多解释了,就这样吧。
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
} catch (IOException e) {
e.printStackTrace();
readLine():读取一个文本行。
Java学习交流群: &&<span style="color:#ff2
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:49056次
排名:千里之外
原创:18篇
评论:33条
(1)(1)(1)(3)(1)(2)(7)(1)(3)求助:请问MATLAB中这个命令是什么意思?_百度知道
求助:请问MATLAB中这个命令是什么意思?
5f;n&#39;Value computed using infinity = %g is %7请问这个是什么意思.&#92? fprintf(&#39;,infinity,f(3
我有更好的答案
&#92,因为有很多格式可选……如.5f.5表示要用后面的数字代替;Value computed using infinity = %g is %7,有点类似disp其中%g %7:fprintf(&#39;n&#39,5)Value computed using infinity = 4 is 5,7,具体到g,就是在屏幕上显示出来回复 1# fprintf是打印的意思.00000,4;,这个就不说了.5是关于显示的格式(如几位有效数字之类的)
其他类似问题
为您推荐:
matlab的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁求问matlab,num_traces_b = arrayfun(@(x) fifo_in.read(), 1:4);中arrayfun函数究竟是如何计算后面的。_百度知道
求问matlab,num_traces_b = arrayfun(@(x) fifo_in.read(), 1:4);中arrayfun函数究竟是如何计算后面的。
提问者采纳
read(1).read()你这句的矩阵输入矩阵S 是很简单的1:4 也就是[1 2 3 4]所以得到的num_traces_b也是长度为4的矩阵.read(3)a=arrayfun(numtraces_b(3)=fifo_in.read(2).read(4);numtraces_b(4)=fifo_in.read()就是一个函数句柄代表函数fifo_numtraces_b(2)=fifo_in,运行完之后相当于numtraces_b(1)=fifo_in, S)对矩阵S的每一个元素都利用fun指定的函数去计算对应的结果放到矩阵a中去fun常常是函数句柄@(x) fifo_in
提问者评价
来自团队:
其他类似问题
为您推荐:
其他1条回答
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 matlab下载 的文章

 

随机推荐