'poofing' variables into existence is not a good idea. If you load from a .mat file, at least use the struct output option. That way you (and others/future you looking at your code) can more easily understand where each variable is coming from.
The source of your problem might indeed be that Matlab treats the i in your command as the imaginary unit. (That might also be the content of the m-lint warning (the orange underlining).) That problem will be solved by using a struct.
S=load(CPI);
semilogy(S.v,S.i);


