在MATLAB中如何修改复数的模(幅角不变)?

来源:百度知道 编辑:UC知道 时间:2024/09/21 15:45:59
abs(V(3,n+1))=1.05
我用的这个语句,其中V是个复数矩阵,n是个循环变量。只是想把V(3,n+1)这个复数的模改为1.05,其幅角不变。但这条语句提示有错误,错误信息为:Subscript indices must either be real positive integers or logicals。
请问各位MATLAB高手,如何达到我所说的目的?

呵呵,我也在复习这个哦。

比如说有:
Complex c2(1,5),c3;
c3=1.5+c2;

则处理1.5+c1时,系统发现和重载的函数
Complex operator+(Complex &c1,Complex &c2); 参数类型不匹配,身为左值的实数类型(这里是1.5)实参不能被转换为复数,编译时无法通过。
改成Complex operator+(const Complex &c1, const Complex &c2);后,系统会把1.5转换成复数(这个复数是一个无名的对象,又系统自动生成),然后这个无名的复数对象和c2就能用操作的“+”运算符相加,并把值赋给c3.

a/abs(a)*1.05