坚持用我的matlab小代码

坚持用我的matlab小代码,matlab,matrix,Matlab,Matrix,我对以下代码有问题: . . . a=zeros(1000,ctimes); a1=zeros(1000,ctimes); hold all for i=num1:num2; colors=Lines(i); switch phantom case 1 path=['E:\filename\']; path1=['E:\filename2\']; n=['S',num2str(emt),'_',num2str(i),'.m']; d=load([path,name]);

我对以下代码有问题:

.
.
.

a=zeros(1000,ctimes);
a1=zeros(1000,ctimes);
hold all

for i=num1:num2;
colors=Lines(i);
switch phantom
   case 1    
path=['E:\filename\']; 
path1=['E:\filename2\']; 


n=['S',num2str(emt),'_',num2str(i),'.m'];
d=load([path,name]);
a(:,i)=complex(d(:,2),d(:,3)));


n1=['S',num2str(emt),'_',num2str(i),'.m'];
d1=load([path1,name1]);
a1(:,i)=complex(d1(:,2),d1(:,3)));
问题是a:,我无法定义。虽然复杂的1:,2,d1:,3没有问题,但任何专家团体都能帮我吗


谢谢你

您确定您的文件名格式正确吗?您正在创建一个变量n,但在形成路径时使用了一个变量名。以下是一些建议的调试步骤:

1确保文件路径格式正确:

filePath = fullfile(path, name);
disp(filePath);
clear d;
d = load(filePath);
disp(size(d));
fullfile函数连接文件路径和名称的元素,并注意使用适用于可移植代码的正确文件路径分隔符,避免您必须记住在文件路径的末尾添加/或\等

2检查d是否正确加载:

filePath = fullfile(path, name);
disp(filePath);
clear d;
d = load(filePath);
disp(size(d));
3在将复杂数量分配给a:,i:

当你做这些事情的时候,你应该已经发现你的问题了,temp的尺寸应该是[1000 1],以匹配a:,i的大小


另外,您应该避免使用i作为变量名,尤其是在使用复数时,因为它的内置值是sqrt-1。因此,c=a+i×b;将创建一个复数a,b并将其放入c-直到你改变i的含义。一个简单的解决方案是使用ii。顺便说一句,j也是如此。Matlab中的一个不幸的设计决策是,您可以覆盖内置值,例如…

您所说的“无法定义”是什么意思?你犯了什么错误?这可能与您正在构建名为n和n1的名称字符串,然后尝试使用名为name和name1的名称字符串有关吗?-1:a问题标题与您的问题有什么关系?2你能提供一份详细的报告吗?3如果不知道d的维数或num1、num2或ctimes的值,调试代码片段是非常困难的。4我怀疑您的复数输出与a:不匹配,我的意思是,当我在命令窗口中放置a:,我在==>lab中得到错误,57 a:,I=20*log10abcomplexData:,2,数据:,3;我确信20*log10abcomplexdata:,2,data:,3是正确的,因为当我把它放在命令窗口时,它工作得很好。当这个问题发生时,I的值是多少?什么是num1:num2?如果,碰巧,num2Hi,谢谢你的回复,我会解释更多。i为回路i=num1:num2;因此与sqrt-1无关