readcell command doesn't work anymore!

34 vues (au cours des 30 derniers jours)
Lara QASIM
Lara QASIM le 23 Mar 2020
Modifié(e) : Stephen23 le 8 Juin 2022
Hi all,
I have a matlab code that reads data from an excel sheet using the readcell function.
I have a data starting in cell B3 to Bx (x can be different).
So I used the following finction to get these data
x1 = readcell("model","sheet","sheet name","Range",'B3:B3');
This function used to give me the needed results (all non empty cells in col B starting from B3). However, I just tried to run my code again today and I was chocked that this command doesn't work anymore!!! error !!!
any idea? please help me!
Thanks in advance,
Lara
  4 commentaires
Lara QASIM
Lara QASIM le 23 Mar 2020
This is the error:
and the error message i got is :
Index in position 1 exceeds array bounds (must not exceed 1).
Error in orient (line 35)
FCM_f(j).Function=char(x1(j,1));
This is part of the code where the error occurs:
Size_FCM = size(FCM);
x1 = readcell("model","sheet","Global FCM","Range",'B3:B3');
for j= 1:Size_FCM(1,1)
FCM_f(j).value=FCM(j,:);
FCM_f(j).Function=char(x1(j,1));
end
Lara QASIM
Lara QASIM le 23 Mar 2020
When I checked x1 .. itonly has the value from cell B3 and not all the col.
That's when when j=2 I have an error..
but the question is why this function used to work and just suddenly stopped working?

Connectez-vous pour commenter.

Réponse acceptée

Stephen23
Stephen23 le 23 Mar 2020
Modifié(e) : Stephen23 le 23 Mar 2020
This only reads one cell:
"Range",'B3:B3'
There is nothing in your code that reads "all non empty cells in col B starting from B3" as you write. It just reads B3.
  6 commentaires
NAFTALI HERSCOVICI
NAFTALI HERSCOVICI le 8 Juin 2022
is there a way to use cell numbers to specify a a range?
Like [2 3] instead of 'B3'.
I tried x1 = readcell("model","sheet","Global FCM","Range",[2 3]); and got the error "Unable to determine range".
Is this a syntax problem or simply cannot be done?
Stephen23
Stephen23 le 8 Juin 2022
Modifié(e) : Stephen23 le 8 Juin 2022
"is there a way to use cell numbers to specify a a range?"
Yes, according to the documentation the current READCELL permits a 2-element (start cell) and 4-element (start and end cells) numeric vectors for the RANGE option:
"Is this a syntax problem or simply cannot be done?"
It can be done. Lets try it here (sample file is attached, with UsedRange from A1 to C3):
C = readcell('test.xlsx','Range',[2,2])
C = 2×2 cell array
{[22]} {[23]} {[32]} {[33]}
That gives exactly the expected output without error.
The error message you showed sounds like there is some ambiguity with your worksheet. But if you do not upload a sample workbook by clicking the paperclip button then I cannot debug this for you.

Connectez-vous pour commenter.

Plus de réponses (0)

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by