MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today
Asked by huda nawaf on 6 May 2012

hi

I have :

x1(1:length(y),1:length(x))=0;

txt(1:length(y),1:length(x))=' ';

mat=struct('scor',x1,'pointer',txt);

mat.pointer(1,1:end)='none'

??? Subscripted assignment dimension mismatch.

how resolve this problem?

*No products are associated with this question.*

Answer by Image Analyst on 6 May 2012

Accepted answer

First of all, y is not defined. And what is the size of mat.pointer? Set a breakpoint on the line (I know you know how to do this because you've been around here long enough), and do this:

size(mat.pointer)

If it's not a 1 row by 4 column character array, then the size of mat.pointer and 'none' don't match. And, needless to say, because you're using "end" mat.pointer must already exist, which it might because I can tell you've left out some code.

Walter Roberson on 6 May 2012

With mat.pointer(1,1:end)='none' it could be any number of rows and 4 columns (not just 1 row and 4 columns)

huda nawaf on 6 May 2012

in fact , my problem is :

i do not want use for in my code so I converted these commands:

for j=1:length(x)

mat(1,j).scor=x1(1,j);

mat(1,j).pointer='none';

end

into:

mat(1,1:end).scor=0;

mat(1,1:end).pointer='none';

when do that get

??? Index exceeds matrix dimensions.

Error in ==> alig_waterman at 71

up_scor=mat(i-1,j).scor+gap;

where i=j=2 in this step

note:length(x)=length(y)=2

x1(1:length(y),1:length(x))=0;

txt(1:length(y),1:length(x))=' ';

mat=struct('scor',x1,'pointer',txt);

thanks in advance

Image Analyst on 6 May 2012

I can't reproduce. I ran your code (below) and it generated no error message whatsoever.

x = 1:2; % Make some arbitrary verctor of length 2

y = 3:4; % Make some arbitrary verctor of length 2

% Note:

% length(x) = 2

% length(y) = 2

x1(1:length(y),1:length(x)) = 0

txt(1:length(y),1:length(x)) = ' '

mat = struct('scor',x1,'pointer',txt)

mat(1,1:end).scor = 0

mat(1,1:end).pointer = 'none'

Does that code produce the mat that you desire?

## 0 Comments