向量不能和元素为零的数组点乘?

# code
U[groundI]=0.95869-0.108387im#SparseVector Complex
im.*groundB=0+0im#Array Complex
a=U[groundI]. *(im.*groundB)

调试结果如下


问题:这么提示是什么意思?

你能不能给一段可以运行的代码?你这个代码我要尝试运行的话,从第一行就开始报错

试试这个,需要先把数据保存成txt文本,运行之后应该会在代码最后一行报错

事实上报错是

ERROR: LoadError: UndefVarError: Num not defined
Stacktrace:
 [1] top-level scope at /home/sukanka/Documents/Scripts/Julia/others/main.jl:10
 [2] startdebug(::Base.PipeEndpoint, ::VSCodeDebugger.var"#3#4"{Tuple{String,String}}) at /home/sukanka/.vscode/extensions/julialang.language-julia-0.17.8/scripts/packages/DebugAdapter/src/packagedef.jl:89
 [3] startdebugger() at /home/sukanka/.vscode/extensions/julialang.language-julia-0.17.8/scripts/packages/VSCodeDebugger/src/VSCodeDebugger.jl:38
 [4] top-level scope at /home/sukanka/.vscode/extensions/julialang.language-julia-0.17.8/scripts/debugger/run_debugger.jl:7
in expression starting at /home/sukanka/Documents/Scripts/Julia/others/main.jl:10

Num 变量没有定义

Num=4,麻烦再加一下,之前忘改了

你的 groundIgroundB 都是一个数,但是你的代码里面他们的类型都是 1-element Array{Any,1}, 这个 Any 就会导致很大的问题(比如无法匹配到合适的方法)。建议你把他们的类型具体化.

groundI和 groundB确实应该是实数,然后带入U中去索引,单个运行没问题,而且有确定的类型(见下图), 但乘起来就报错,会不会有可能是SparseVector.*Array的问题?


[/quote]

刚才试了一下,在
U = sparse(u.*exp.(im.*u_ang))
后加
U=Matrix(U)#将U变成了稠密矩阵
就不报错了