为什么我得到一个无效的文本字符错误?
41视图(30天)
显示旧的评论
你好!这是代码:
V1 = [3 20 3];
V2 = 10 3.5 [3];
V3 = [-123 32 34];
信谊vx v vz真实
vslk = [vx;v;vz];
vfl =简化(规范(vskl));
阿尔法=这些“可信赖医疗组织”(vx / vfl);
β=这些“可信赖医疗组织”(v / vfl);
伽马=这些“可信赖医疗组织”(vz / vfl);
为i = 1:3
disp ([“vectorul”num2str(我),“:”]);
VX = eval ([“V”,我]);
vxn = VX (1);
vyn = VX (2);
却= VX (3);
vn = eval(潜艇(vfl [vx v vz], [vxn vyn却]));
disp ([“modulul vectorului”num2str(我),“:”num2str (vn)]);
alfan = rad2deg (eval(潜艇(阿尔法,[vx v vz], [vxn vyn却))));
betan = rad2deg (eval(潜艇(β,[vx v vz], [vxn vyn却))));
这种= rad2deg (eval(潜艇(伽马,[vx v vz], [vxn vyn却))));
disp ([“unghiul阿尔法al vectorului”num2str(我),“:”num2str (alfan),“年级”]);
disp ([“unghiulβal vectorului”num2str(我),“:”num2str (betan),“年级”]);
disp ([“unghiul伽马al vectorului”num2str(我),“:”num2str(忍受)“年级”]);
结束
它给了我以下错误:
错误使用untitled4
错误:无效的文本字符。检查不支持的象征,看不见万博1manbetx
非ascii字符的字符,或粘贴。
我怎么能看到这条线有问题吗?
0评论
答案(2)
沃尔特·罗伯森
2023年5月5日15:49
为i = 1:3
我
将包含
数字
值。
VX = eval ([“V”,我]);
当您使用[]操作符之间的特征向量和一个数字,结果是一样的,如果你所做的
VX = eval ([“V”char (i)]);
char (1)
不
给你' 1 '的字符(数字1)。char(1)给出了字符的Unicode代码点是1,第二个Unicode字符(首先是代码点(0),性格是传统上被称为全音阶,标题的开始;
https://www.compart.com/en/unicode/U + 0001
如何解决这个问题?容易:不要使用eval。
V1 = [3 20 3];
V2 = 10 3.5 [3];
V3 = [-123 32 34];
Vs = {V1、V2、V3};
为i = 1:3
disp ([“vectorul”num2str(我),“:”]);
VX = Vs{我};
1评论
沃尔特·罗伯森
2023年5月5日16:00时
没有记录的eval()函数符号表达式。
vn = eval(潜艇(vfl [vx v vz], [vxn vyn却]));
可以做几乎任何东西,它不会是一个“错误”,因为这种行为不是由Mathworks定义。
在实践中,eval()符号表达式的处理一样的eval()符号表达式的字符(),如果你写了
vn = eval (char(潜艇(vfl [vx v vz], [vxn vyn却))));
这听起来合理,但问题是,char()的一个象征性的表达主要是显示的目的,并不是一定要发生有效的语法内部符号表情和不确定发生有效MATLAB的语法。也有一些情况下,符号函数的参数顺序不同的参数名称类似的数值函数;例如历史符号函数的参数
β
比数值函数的顺序是不同的吗
β
。使用char()生成一个人类可读的形式,
不
设计生产的东西可以数值执行。
所以,不要使用eval()符号表达式。这是未定义的,会给你错误信息在某些情况下,默默地会成功但是在其他情况下给你不想要的结果。
使用潜艇()代替了象征性的数字,然后双()符号数得到一个双精度数。