0

这里的任何专家都可以告诉我我的代码有什么问题吗:

folderContents=ls;
folderContents(1:2,:)=[];
nFolderContents=size(folderContents,1);    
for i=1:nFolderContents;
        [~, data] = hdrload(folderContents(i,:));
        if size(folderContents(i,:),2)<size(folderContents,2);
        temp=folderContents(i,6:9);
        else
        temp=folderContents(i,6:7);
        end
        temp1(i)=strread(temp);
        w=2*pi*(data([18 35 51 68],1));
        permfreespace=8.854e-12;
        perm=data([18 35 51 68],3);
        cond=perm.*w.*permfreespace;
        conds([18 35 51 68],i)=cond;

       hold all
    end

    figure(4);plot(temp1,conds);

问题是我只想绘制这些线 [18 35 51 68],但我看到很多线。nFolderContents is equal to 31,当我选择时,i=1:4我遇到了同样的问题。为什么 ??

4

2 回答 2

0

也许我错过了一些东西,但你能不能不这样做:

plot(temp1([18 35 51 68]),conds([18 35 51 68],:))
于 2013-07-11T15:36:26.270 回答
0

当 MATLAB 第一次执行该行时

conds([18 35 51 68],i)=cond;

它创建一个包含 68 行的数组“conds”,并将 4 元素向量“cond”中的数据分配给“conds”第 i 列的第 18、35、51、68 行。其余行包含零。所以,我猜,在您的代码中,您会看到 4 行您感兴趣的行,以及沿 X 轴的 64 行...

为了解决您的问题,将上述行替换为

conds(:,i)=cond;

希望我没有错过任何东西))

干杯,

//奥列格

于 2013-07-11T16:10:13.370 回答